//
// Soapi JavaScript Library
// http://soapi.info/
//
// Copyright 2010, Sky Sanders
// Dual licensed under the MIT or GPL Version 2 licenses.
// http://soapi.info/code/js/license.aspx
//
// Date: 7/22/2010 5:18:14 PM
// Version: 1.0 1.0 2010.07.09.004
//
// NOTE: this is a documentation script ONLY. DO NOT INCLUDE OR SERVE THIS SCRIPT.
// NOTE: this is a documentation script ONLY. DO NOT INCLUDE OR SERVE THIS SCRIPT.
// NOTE: this is a documentation script ONLY. DO NOT INCLUDE OR SERVE THIS SCRIPT.
// NOTE: this is a documentation script ONLY. DO NOT INCLUDE OR SERVE THIS SCRIPT.
//
// did i mention...
// NOTE: this is a documentation script ONLY. DO NOT INCLUDE OR SERVE THIS SCRIPT.

// TODONE: updated PostTimeLine with question_id field

/**
* @fileOverview Soapi JavaScript Library
* @author <a href="mailto:sky.sanders@gmail.com">Sky Sanders</a> <a href="http://stackapps.com/questions/494">more info</a>.
* @version 1.0 1.0 2010.07.09.004
*/
/**
* @description
*     <h1>
*         Soapi.js</h1>
*     <p>
*         <em>As easy as...</em></p>
* <pre><code>
*    new Soapi.RouteFactory('api.stackapps.com', 'api key if you gots one')
*        .UsersById(14)
*        .getResponse(function(data) {
*           alert(data.items[0].display_name);
*         });
* </code></pre>
*     <p>
*         See <a href="http://stackapps.com/questions/494">Soapi.JS</a> for more info.
*     </p>
* @namespace Start here.
*/

var Soapi = {
    // TODO: well, we found out something about getting class decorators to function
    // properly here http://connect.microsoft.com/VisualStudio/feedback/details/553372/vs10-javascript-intellisense-class-member-decorator-display-depends-on-microsoftajax-js
    // lets see if we can find out why namespaces lose their decorator after first use
    __namespace: true,
    __typeName: "Soapi"
};

/**
* Override (overwrite) these event handlers in client code.
* @namespace Global event handlers
*/
Soapi.Events = {

    /**
    * Global error handler. Replace (override) this method. This event is raised before the instance error function.
    * @function
    * @static
    * @param {Soapi.Responses.ErrorResponse} errorResponse The error that occurred
    * @param {Object} [context] An arbitrary user defined value/object
    */
    onError: function(errorResponse, context)
    {
        /// <summary>Global error handler. Replace (override) this method. This event is raised before the instance error function.</summary>
        /// <param name="errorResponse" type="Soapi.Responses.ErrorResponse">The error that occurred</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
    },

    /**
    * Global success handler. Replace (override) this method. This event is raised before the instance success function.
    * @function
    * @static
    * @param {Object} data The response data
    * @param {Object} [context] An arbitrary user defined value/object
    */
    onSuccess: function(data, context)
    {
        /// <summary>Global success handler. Replace (override) this method. This event is raised before the instance success function.</summary>
        /// <param name="data" type="Object">The response object</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
    },

    /**
    * Global completion handler. Replace (override) this method. This event is raised last.
    * @function
    * @static
    * @param {Object} data The response data, if any
    * @param {Soapi.Responses.ErrorResponse} errorResponse The error that occurred, if any
    * @param {Object} [context] An arbitrary user defined value/object
    */
    onComplete: function(data, error, context)
    {
        /// <summary>Global completion handler. Replace (override) this method. This event is raised last</summary>
        /// <param name="data" type="Object">The response object, if any</param>
        /// <param name="errorResponse" type="Soapi.Responses.ErrorResponse">The error that occurred, if any</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
    },


    /**
    * Global handler. Replace (override) this method. This event is raised when a request is enqueued. Used in conjunction with a short buffer interval, this event is useful for displaying ajax 'loading mask' or otherwise manipulating your UI.
    * @function
    * @static
    */
    onQueueActive: function()
    {
        /// <summary>Global handler. Replace (override) this method. This event is raised when a request is enqueued. Used in conjunction with a short buffer interval, this event is useful for displaying ajax 'loading mask' or otherwise manipulating your UI.</summary>
    },

    /**
    * Global handler. Replace (override) this method. This event is raised when the request queue is emptied. Used in conjunction with a short buffer interval, this event is useful for removing ajax 'loading mask' or otherwise manipulating your UI.
    * @function
    * @static
    */
    onQueueComplete: function()
    {
        /// <summary>Global handler. Replace (override) this method. This event is raised when the request queue is emptied. Used in conjunction with a short buffer interval, this event is useful for removing ajax 'loading mask' or otherwise manipulating your UI.</summary>
    },

    __namespace: true,
    __typeName: "Soapi.Events"
};



/**
* <p>RequestQueue limits the rate that requests are sent to the API to avoid throttle violations
* The default queue processing interval is 170ms - this may be adjusted with the knowledge that breaking the throttle rules will result in unexpected behavior.</p>
* <p>See http://stackapps.com/questions/1143/request-throttling-limits for more information.</p>
* @namespace Contains static methods to manage the Request Queue
*/
Soapi.RequestQueue = {
    /**
    * Stops, or pauses, the request queue, if running.
    */
    stop: function()
    {
        /// <summary>Stops, or pauses, the request queue, if running.</summary>
    },
    /**
    * Starts the request queue, if not already running.
    */
    start: function()
    {
        /// <summary>Starts the request queue, if not already running.</summary>

    },
    /**
    * Stops the request queue, nulls all pending requests and restarts the queue
    */
    clear: function()
    {
        /// <summary>Stops the request queue, nulls all pending requests and restarts the queue</summary>
    },
    /**
    * Sets the interval, in ms, between requests.
    * @param {Number} value The interval, in ms, between requests.
    */
    setInterval: function(value)
    {
        /// <summary>Sets the interval, in ms, between requests.</summary>
        /// <param name="value" type="Number">The interval, in ms, between requests.</param>
    },
    /**
    * The interval, in ms, between requests.
    * @returns {Number} The interval, in ms, between requests.
    */
    getInterval: function()
    {
        /// <summary>The interval, in ms, between requests.</summary>
        /// <returns type="Number"/>
    },
    /**
    * The current length of the request queue.
    * @returns {Number} The current length of the request queue.
    */
    getLength: function()
    {
        /// <summary>The current length of the request queue.</summary>
        /// <returns type="Number"/>
    },
    __namespace: true,
    __typeName: "Soapi.RequestQueue"
};

/**
* The RequestCache stores the results of successful requests for a default
* interval of 60 seconds. This duration can be increased by setDuration().
* @namespace Contains methods for managing cache durations
*/
Soapi.RequestCache = {
    /**
    * Clears all cached requests.
    */
    clear: function()
    {
        /// <summary>Clears all cached requests.</summary>
    },
    /**
    * Sets a cache duration rule for a particular route format. default/minimum value 60000 (1 minute)
    * @param {String} routeFormat the route format upon which to set cache duration rule
    * @param {Number} duration the duration, in ms, to cache responses for this route format. minimum value 60000 (1 minute)
    */
    setDuration: function(routeFormat, duration)
    {
        /// <summary>
        /// Sets a cache duration rule for a particular route format. default/minimum value 60000 (1 minute)
        /// </summary>
        /// <param name="routeFormat" type="String">routeFormat the route format upon which to set cache duration rule</param>
        /// <param name="duration" type="Number">the duration, in ms, to cache responses for this route format. minimum value 60000 (1 minute)</param>
    },
    __namespace: true,
    __typeName: "Soapi.RequestCache"
};

(function()
{


    /**
    * Creates a new RouteFactory.
    * @class A factory that instantiates Route instances using the supplied target and api key. This is the only class you will explicitely instantiate.
    * @param {String} target target site. e.g. api.stackoverflow.com or http://api.stackoverflow.com. NOTE: this parameter is ignored by Sites and UsersByIdAssociated routes. So you may either use any factory instance or construct an instance with no target.
    * @param {String} [apiKey] If empty your daily limit will be 300 requests. Obtain a key from StackApps.com
    */
    Soapi.RouteFactory = function(target, apiKey)
    {
        /// <summary>SO API RouteFactory</summary>
        /// <param name="target" type="String">target site. e.g. api.stackoverflow.com or http://api.stackoverflow.com
        /// NOTE: this parameter is ignored by Sites and UsersByIdAssociated routes.
        /// So you may either use any factory instance or construct an instance with no target.
        /// </param>
        /// <param name="apiKey" type="String">(optional) If empty your daily limit will be 300 requests. Obtain a key from StackApps.com</param>
        /// <returns type="Soapi.RouteFactory"/>

    }
    Soapi.RouteFactory.prototype.constructor = Soapi.RouteFactory;

    /**
    * version = '1.0 1.0 2010.07.09.004';
    * @field version = '1.0 1.0 2010.07.09.004';
    * @static
    * @type String
    */
    Soapi.RouteFactory.prototype.version = '1.0 1.0 2010.07.09.004';
    /**
    * apiVersion = '1.0';
    * @field apiVersion = '1.0';
    * @static
    * @type String
    */
    Soapi.RouteFactory.prototype.apiVersion = '1.0';
    /**
    * apiRevision = '2010.07.09.004';
    * @field apiRevision = '2010.07.09.004';
    * @static
    * @type String
    */
    Soapi.RouteFactory.prototype.apiRevision = '2010.07.09.004';


    /**
    * @namespace Contains the route maps for each API route as listed on http://api.stackoverflow.com/1.0/help
    */
    Soapi.Routes = {
        __namespace: true,
        __typeName: "Soapi.Routes"
    };






    /**
    * @namespace Contains the response types. These types are directly equivalent to the 'returns' type listed on each route's help page. e.g. http://api.stackoverflow.com/1.0/help/method?method=answers/{id}
    */
    Soapi.Responses = {
        __namespace: true,
        __typeName: "Soapi.Responses"
    }
    /**
    * @namespace Contains all of the types that compose a response. There are cases where a nested type is returned with only a subset of fields, e.g. Question.Owner. In these cases, the ommited fields are undefined.
    */
    Soapi.Domain = {
        __namespace: true,
        __typeName: "Soapi.Domain"
    }

    /**
    * @namespace Contains utility and helper functions
    */
    Soapi.Utilities = {
        /**
        * Returns a 'time ago' string similar to stack overflow and the 'timeago' jquery plugin.
        * @function
        * @param {Date} date the date to format
        * @returns {String}
        */

        getTimeAgo: function(date)
        {
            /// <summary>
            /// Returns a 'time ago' string similar to stack overflow and the 'timeago' jquery plugin.
            /// </summary>
            /// <param name="date" type="Date">the date to format</param>
            /// <returns type="String"/>
        },
        /**
        * Formats a number similar to the way stack exchange sites format reputation.
        * e.g. numbers < 10000 the output is '9,999', numbers > 10000 the output is '10k' with one decimal place when needed.
        * @function
        * @param {Number} rep the number to format
        * @returns {String}
        */
        formatNumber: function(rep)
        {
            /// <summary>
            /// Formats a number similar to the way stack exchange sites format reputation.
            /// e.g. numbers < 10000 the output is '9,999', numbers > 10000 the output is '10k' with one decimal place when needed.
            /// </summary>
            /// <param name="rep" type="Number">the number to format</param>
            /// <returns type="String"/>
        },
        __namespace: true,
        __typeName: "Soapi.Utilities"

    };

    /**
    * Creates a new VectorizedIdList.
    * @class A class for batching up API requests without hitting the max path limit and generating (400) Bad Request errors
    * @param {Number} maxBatchLength Maximum string length of batches
    */
    Soapi.Utilities.VectorizedIdList = function(maxBatchLength)
    {
        /// <summary>
        /// A class for batching up API requests without hitting
        /// the max path limit and generating (400) Bad Request errors
        /// <summary>
        /// <param name="maxBatchLength" type="Number">Maximum string length of batches</param>
        /// <field name="maxBatchLength" type="Number">Maximum string length of batches</field>
        /// <returns type="Soapi.Utilities.VectorizedIdList"/>
        /**
        * Maximum string length of batches
        * @field
        * @type Number 
        */
        this.maxBatchLength = 0;
    };

    /**
    * Gets an array of arrays containing batched values
    * @function
    * @param {Boolean} clear whether to clear the inner list after batch generation
    * @returns {Array[Array[Number]]} An array of array, each representing a viable batch
    */
    Soapi.Utilities.VectorizedIdList.prototype.getBatches = function(clear)
    {
        /// <summary>Gets an array of arrays containing batched values</summary>
        /// <param name="clear" type="Boolean">whether to clear the inner list after batch generation</param>
        /// <returns type="Array"/>
    }

    /**
    * Gets an array of vectorized list strings, each length being equal or less than maxBatchLength
    * @function
    * @param {Boolean} clear whether to clear the inner list after batch generation
    * @returns {Array[String]} An array of vectorized id lists
    */
    Soapi.Utilities.VectorizedIdList.prototype.getBatchesVectorized = function(clear)
    {
        /// <summary>Gets an array of vectorized list strings, each length being equal or less than maxBatchLength</summary>
        /// <param name="clear" type="Boolean">whether to clear the inner list after batch generation</param>
        /// <returns type="Array"/>
    }

    /**
    * Adds a value to the batch, if it does not already exist
    * @function
    * @param {Number|String} value A value to add to the batch
    */
    Soapi.Utilities.VectorizedIdList.prototype.add = function(value)
    {
        /// <summary>Adds a value to the batch, if it does not already exist</summary>
        /// <param name="value" type="Number|String"></param>

    }

    /**
    * Adds an array of values to the batch, each if it does not already exist
    * @function
    * @param {Array[Number|String]} values An array of values to add to the batch
    */
    Soapi.Utilities.VectorizedIdList.prototype.addRange = function(values)
    {
        /// <summary>Adds an array of values to the batch, each if it does not already exist</summary>
        /// <param name="values" type="Array[Number|String]">An array of values to add to the batch</param>
    }

    /**
    * Removes a value from the batch, if it exists
    * @function
    * @param {Number|String} remove A value to remove from the batch
    */
    Soapi.Utilities.VectorizedIdList.prototype.remove = function(value)
    {
        /// <summary>Removes a value from the batch, if it exists</summary>
        /// <param name="value" type="Number|String">A value to remove from the batch</param>

    }



    function makeEnum(type, typeName)
    {
        type.__typeName = typeName;
        type.__flags = false;
        type.__enum = true;
        for (var key in type.prototype)
        {
            if (type.prototype.hasOwnProperty(key))
            {
                type[key] = type.prototype[key];
            }
        }
    };
    function makeClass(type, typeName)
    {
        type.prototype.constructor = type;
        type.__typeName = typeName;
        type.__class = true;
    };
    function createEnum(tn, tp)
    {
        Soapi.Domain[tn] = function() { };
        Soapi.Domain[tn].prototype = tp;
        makeEnum(Soapi.Domain[tn], "Soapi.Domain." + tn);
    };

    //    /**
    //    * Creates a new Route.
    //    * @class An 'abstract' base type for all routes.
    //    */
    //    Soapi.Routes.Route = function()
    //    {
    //        /// <summary>an 'abstract' base type for all routes</summary>
    //        /// <param name="lastUrl" type="String">the last url called by this RouteFactory instance</param>
    //        /** @lends Soapi.Routes.Route.prototype */
    //    };
    //    Soapi.Routes.Route.prototype.constructor = Soapi.Routes.Route;
    //    Soapi.Routes.Route.prototype = {
    //        /**
    //        * Applies parameters to this Route.
    //        * @function
    //        * @param {Object} params An object map of parameters to apply to this Route
    //        * @returns {Soapi.Routes.Route}
    //        */
    //        applyParameters: function(params)
    //        {
    //            /// <summary>
    //            /// Applies parameters to this object.
    //            /// </summary>
    //            /// <param name="params" type="Object"></param>
    //            /// <returns type="Soapi.Routes.Route"/>
    //        },
    //        
    //        /**
    //        * Retrieves results all pages of a result. Default page=1, pagesize=100
    //        * @function
    //        * @param {Function(data, context)} success function to recieve the results
    //        * @param {func(Soapi.Responses.ErrorsResponse, context, context)} [error] function to recieve errors
    //        * @param {Function(data, context, context)} [pageCallback] return true to cancel paging operation.
    //        * @param {Number} [timeout] Default 3000 (3 seconds)
    //        * @param {Object} [context] An arbitrary user defined value/object
    //        * @returns {Soapi.Routes.Route}
    //        */
    //        getPagedResponse: function(success, error, pageCallback, timeout, context)
    //        {
    //            /// <summary>
    //            /// Retrieves results all pages of a result. Default page=1, pagesize=100
    //            /// </summary>
    //            /// <param name="success" type="Function">func(data, context) function to recieve the results</param>
    //            /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
    //            /// <param name="pageCallback" type="Function">func(data, context) optional return true to cancel paging operation.</param>
    //            /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
    //            /// <param name="context" type="Object">(optional) An arbitrary user defined value/object</param>
    //            /// <returns type="Soapi.Routes.Route"/>
    //        },
    //        /**
    //        * Retrieves results
    //        * @function
    //        * @param {Function(data, context)} success function to recieve the results
    //        * @param {func(ErrorsResponse, context, context)} [error] function to recieve errors
    //        * @param {Number} [timeout] Default 3000 (3 seconds)
    //        * @param {Object} [context] An arbitrary user defined value/object
    //        * @returns {Soapi.Routes.Route}
    //        */
    //        getResponse: function(success, error, timeout, context)
    //        {
    //            /// <summary>
    //            /// Retrieves results
    //            /// </summary>
    //            /// <param name="success" type="Function">func(data, context) function to recieve the results</param>
    //            /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
    //            /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
    //            /// <param name="context" type="Object">(optional) An arbitrary user defined value/object</param>
    //            /// <returns type="Soapi.Routes.Route"/>
    //        }
    //    };

    makeClass(Soapi.RouteFactory, "Soapi.RouteFactory");
    //makeClass(Soapi.Routes.Route, 'Soapi.Routes.Route');

    // -----------------------------------------------------------------------------------------------------------------------------
    // - Soapi.Domain Enums
    // -----------------------------------------------------------------------------------------------------------------------------
    /**
    * SiteState enum
    * @class Note: this is a static enum class and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.SiteState.normal;</code>
    */
    Soapi.Domain.SiteState = function()
    {
        /// <field name='normal' static='true' type='String'/>
        /// <field name='closed_beta' static='true' type='String'/>
        /// <field name='open_beta' static='true' type='String'/>
        /// <field name='linked_meta' static='true' type='String'/>
        /// <returns type='Soapi.Domain.SiteState'>
        /**
        * "normal"
        * @constant
        */
        this.normal = "normal";
        /**
        * "closed_beta"
        * @constant "closed_beta"
        */
        this.closed_beta = "closed_beta";
        /**
        * "open_beta"
        * @constant
        */
        this.open_beta = "open_beta";
        /**
        * "linked_meta"
        * @constant
        */
        this.linked_meta = "linked_meta";
    };
    Soapi.Domain.SiteState.prototype = { normal: 'normal', closed_beta: 'closed_beta', open_beta: 'open_beta', linked_meta: 'linked_meta' };

    makeEnum(Soapi.Domain.SiteState, 'Soapi.Domain.SiteState');

    /**
    * PostTimelineType enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.PostTimelineType.question;</code>
    */
    Soapi.Domain.PostTimelineType = function()
    {
        /// <field name='question' static='true' type='String'/>
        /// <field name='answer' static='true' type='String'/>
        /// <field name='comment' static='true' type='String'/>
        /// <field name='revision' static='true' type='String'/>
        /// <field name='votes' static='true' type='String'/>
        /// <field name='state' static='true' type='String'/>
        /// <field name='accepted' static='true' type='String'/>
        /// <field name='unaccepted' static='true' type='String'/>
        /// <returns type='Soapi.Domain.PostTimelineType'>
        /**
        * "question"
        * @constant
        */
        this.question = "question";
        /**
        * "answer"
        * @constant
        */
        this.answer = "answer";
        /**
        * "comment"
        * @constant
        */
        this.comment = "comment";
        /**
        * "revision"
        * @constant
        */
        this.revision = "revision";
        /**
        * "votes"
        * @constant
        */
        this.votes = "votes";
        /**
        * "state"
        * @constant
        */
        this.state = "state";
        /**
        * "accepted"
        * @constant
        */
        this.accepted = "accepted";
        /**
        * "unaccepted"
        * @constant
        */
        this.unaccepted = "unaccepted";

    };
    Soapi.Domain.PostTimelineType.prototype = { question: 'question', answer: 'answer', comment: 'comment', revision: 'revision', votes: 'votes', state: 'state', accepted: 'accepted', unaccepted: 'unaccepted' };

    makeEnum(Soapi.Domain.PostTimelineType, 'Soapi.Domain.PostTimelineType');
    /**
    * PostType enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.PostType.question;</code>
    */
    Soapi.Domain.PostType = function()
    {
        /// <field name='question' static='true' type='String'/>
        /// <field name='answer' static='true' type='String'/>
        /// <returns type='Soapi.Domain.PostType'>
        /**
        * "question"
        * @constant
        */
        this.question = "constant";
        /**
        * "answer"
        * @constant
        */
        this.answer = "constant";
    };
    Soapi.Domain.PostType.prototype = { question: 'question', answer: 'answer' };

    makeEnum(Soapi.Domain.PostType, 'Soapi.Domain.PostType');
    /**
    * RevisionType enum
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.RevisionType.single_user;</code>
    */
    Soapi.Domain.RevisionType = function()
    {
        /// <field name='single_user' static='true' type='String'/>
        /// <field name='vote_based' static='true' type='String'/>
        /// <returns type='Soapi.Domain.RevisionType'>
        /**
        * "single_user"
        * @constant
        */
        this.single_user = "single_user";
        /**
        * "vote_based"
        * @constant
        */
        this.vote_based = "vote_based";
    };
    Soapi.Domain.RevisionType.prototype = { single_user: 'single_user', vote_based: 'vote_based' };

    makeEnum(Soapi.Domain.RevisionType, 'Soapi.Domain.RevisionType');
    /**
    * UserTimelineType enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.UserTimelineType.comment;</code>
    */
    Soapi.Domain.UserTimelineType = function()
    {
        /// <field name='comment' static='true' type='String'/>
        /// <field name='askoranswered' static='true' type='String'/>
        /// <field name='badge' static='true' type='String'/>
        /// <field name='revision' static='true' type='String'/>
        /// <field name='accepted' static='true' type='String'/>
        /// <returns type='Soapi.Domain.UserTimelineType'>
        /**
        * "comment"
        * @constant
        */
        this.comment = "comment";
        /**
        * "askoranswered"
        * @constant
        */
        this.askoranswered = "askoranswered";
        /**
        * "badge"
        * @constant
        */
        this.badge = "badge";
        /**
        * "revision"
        * @constant
        */
        this.revision = "revision";
        /**
        * "accepted"
        * @constant
        */
        this.accepted = "accepted";
    };
    Soapi.Domain.UserTimelineType.prototype = { comment: 'comment', askoranswered: 'askoranswered', badge: 'badge', revision: 'revision', accepted: 'accepted' };

    makeEnum(Soapi.Domain.UserTimelineType, 'Soapi.Domain.UserTimelineType');
    /**
    * UserType enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.UserType.anonymous;</code>
    */
    Soapi.Domain.UserType = function()
    {
        /// <field name='anonymous' static='true' type='String'/>
        /// <field name='unregistered' static='true' type='String'/>
        /// <field name='registered' static='true' type='String'/>
        /// <field name='moderator' static='true' type='String'/>
        /// <returns type='Soapi.Domain.UserType'>
        /**
        * "anonymous"
        * @constant
        */
        this.anonymous = "anonymous";
        /**
        * "unregistered"
        * @constant
        */
        this.unregistered = "unregistered";
        /**
        * "registered"
        * @constant
        */
        this.registered = "registered";
        /**
        * "moderator"
        * @constant
        */
        this.moderator = "moderator";
    };
    Soapi.Domain.UserType.prototype = { anonymous: 'anonymous', unregistered: 'unregistered', registered: 'registered', moderator: 'moderator' };

    makeEnum(Soapi.Domain.UserType, 'Soapi.Domain.UserType');
    // -----------------------------------------------------------------------------------------------------------------------------
    // - Soapi.Parameters Enums
    // -----------------------------------------------------------------------------------------------------------------------------
    /**
    * CommentSort enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.CommentSort.creation;</code>
    */
    Soapi.Domain.CommentSort = function()
    {
        /// <field name='creation' static='true' type='String'/>
        /// <field name='votes' static='true' type='String'/>
        /// <returns type='Soapi.Domain.CommentSort'>
        /**
        * "creation"
        * @constant
        */
        this.creation = "creation";
        /**
        * "votes"
        * @constant
        */
        this.votes = "votes";
    };
    Soapi.Domain.CommentSort.prototype = { creation: 'creation', votes: 'votes' };

    makeEnum(Soapi.Domain.CommentSort, 'Soapi.Domain.CommentSort');
    /**
    * FavoritesSort enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.FavoritesSort.activity;</code>
    */
    Soapi.Domain.FavoritesSort = function()
    {
        /// <field name='activity' static='true' type='String'/>
        /// <field name='views' static='true' type='String'/>
        /// <field name='creation' static='true' type='String'/>
        /// <field name='added' static='true' type='String'/>
        /// <field name='votes' static='true' type='String'/>
        /// <returns type='Soapi.Domain.FavoritesSort'>
        /**
        * "activity"
        * @constant
        */
        this.activity = "activity";
        /**
        * "views"
        * @constant
        */
        this.views = "views";
        /**
        * "creation"
        * @constant
        */
        this.creation = "creation";
        /**
        * "added"
        * @constant
        */
        this.added = "added";
        /**
        * "votes"
        * @constant
        */
        this.votes = "votes";
    };
    Soapi.Domain.FavoritesSort.prototype = { activity: 'activity', views: 'views', creation: 'creation', added: 'added', votes: 'votes' };

    makeEnum(Soapi.Domain.FavoritesSort, 'Soapi.Domain.FavoritesSort');

    /**
    * PostSort enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.PostSort.activity;</code>
    */
    Soapi.Domain.PostSort = function()
    {
        /// <field name='activity' static='true' type='String'/>
        /// <field name='views' static='true' type='String'/>
        /// <field name='creation' static='true' type='String'/>
        /// <field name='votes' static='true' type='String'/>
        /// <returns type='Soapi.Domain.PostSort'>
        /**
        * "activity"
        * @constant
        */
        this.activity = "activity";
        /**
        * "views"
        * @constant
        */
        this.views = "views";
        /**
        * "creation"
        * @constant
        */
        this.creation = "creation";
        /**
        * "votes"
        * @constant
        */
        this.votes = "votes";
    };
    Soapi.Domain.PostSort.prototype = { activity: 'activity', views: 'views', creation: 'creation', votes: 'votes' };

    makeEnum(Soapi.Domain.PostSort, 'Soapi.Domain.PostSort');

    /**
    * QuestionSort enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.QuestionSort.activity;</code>
    */
    Soapi.Domain.QuestionSort = function()
    {
        /// <field name='activity' static='true' type='String'/>
        /// <field name='votes' static='true' type='String'/>
        /// <field name='creation' static='true' type='String'/>
        /// <field name='featured' static='true' type='String'/>
        /// <field name='hot' static='true' type='String'/>
        /// <field name='week' static='true' type='String'/>
        /// <field name='month' static='true' type='String'/>
        /// <returns type='Soapi.Domain.QuestionSort'>
        /**
        * "activity"
        * @constant
        */
        this.activity = "activity";
        /**
        * "votes"
        * @constant
        */
        this.votes = "votes";
        /**
        * "creation"
        * @constant
        */
        this.creation = "creation";
        /**
        * "featured"
        * @constant
        */
        this.featured = "featured";
        /**
        * "hot"
        * @constant
        */
        this.hot = "hot";
        /**
        * "week"
        * @constant
        */
        this.week = "week";
        /**
        * "month"
        * @constant
        */
        this.month = "month";
    };
    Soapi.Domain.QuestionSort.prototype = { activity: 'activity', votes: 'votes', creation: 'creation', featured: 'featured', hot: 'hot', week: 'week', month: 'month' };

    makeEnum(Soapi.Domain.QuestionSort, 'Soapi.Domain.QuestionSort');
    /**
    * SortOrder enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.SortOrder.desc;</code>
    */
    Soapi.Domain.SortOrder = function()
    {
        /// <field name='desc' static='true' type='String'/>
        /// <field name='asc' static='true' type='String'/>
        /// <returns type='Soapi.Domain.SortOrder'>
        /**
        * "desc"
        * @constant
        */
        this.desc = "desc";
        /**
        * "asc"
        * @constant
        */
        this.asc = "asc";
    };
    Soapi.Domain.SortOrder.prototype = { desc: 'desc', asc: 'asc' };

    makeEnum(Soapi.Domain.SortOrder, 'Soapi.Domain.SortOrder');

    /**
    * TagSort enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.TagSort.popular;</code>
    */
    Soapi.Domain.TagSort = function()
    {
        /// <field name='popular' static='true' type='String'/>
        /// <field name='activity' static='true' type='String'/>
        /// <field name='name' static='true' type='String'/>
        /// <returns type='Soapi.Domain.TagSort'>
        /**
        * "popular"
        * @constant
        */
        this.popular = "popular";
        /**
        * "activity"
        * @constant
        */
        this.activity = "activity";
        /**
        * "name"
        * @constant
        */
        this.name = "name";
    };
    Soapi.Domain.TagSort.prototype = { popular: 'popular', activity: 'activity', name: 'name' };

    makeEnum(Soapi.Domain.TagSort, 'Soapi.Domain.TagSort');
    /**
    * UserSort enum.
    * @class Note: this is a static enum and should not be instantiated. Simply use it as a constant e.g. <code>var x = Soapi.Domain.UserSort.reputation;</code>
    */
    Soapi.Domain.UserSort = function()
    {
        /// <field name='reputation' static='true' type='String'/>
        /// <field name='creation' static='true' type='String'/>
        /// <field name='name' static='true' type='String'/>
        /// <returns type='Soapi.Domain.UserSort'>
        /**
        * "reputation"
        * @constant
        */
        this.reputation = "reputation";
        /**
        * "creation"
        * @constant
        */
        this.creation = "creation";
        /**
        * "name"
        * @constant
        */
        this.name = "name";
    };
    Soapi.Domain.UserSort.prototype = { reputation: 'reputation', creation: 'creation', name: 'name' };

    makeEnum(Soapi.Domain.UserSort, 'Soapi.Domain.UserSort');

    // =============================================================================================================================
    // = Soapi.Domain objects
    // =============================================================================================================================
    /**
    * Creates a new Styling.
    * @class Represents an Styling object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.Styling = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='link_color' type='String'>color of links, as a CSS style color value</field>
        /// <field name='tag_foreground_color' type='String'>foreground color of tags, as a CSS style color value</field>
        /// <field name='tag_background_color' type='String'>background/fill color of tags, as a CSS style color value</field>
        /// <returns type='Soapi.Domain.Styling'>
        /**
        * color of links, as a CSS style color value
        * @field
        * @type String
        */
        this.link_color = "";
        /**
        * foreground color of tags, as a CSS style color value
        * @field
        * @type String
        */
        this.tag_foreground_color = "";
        /**
        * background/fill color of tags, as a CSS style color value
        * @field
        * @type String
        */
        this.tag_background_color = "";
    };

    makeClass(Soapi.Domain.Styling, 'Soapi.Domain.Styling');
    /**
    * Creates a new Answer.
    * @class Represents an Answer object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.Answer = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='answer_id' type='Number'>id of the answer </field>
        /// <field name='accepted' type='Boolean'>whether this answer is the accepted answer on its question </field>
        /// <field name='answer_comments_url' type='String'>a link to the method that returns comments on this answer </field>
        /// <field name='question_id' type='Number'>id of the question this post is or is on </field>
        /// <field name='locked_date' type='Date'>date this question was locked  (optional)</field>
        /// <field name='owner' type='Soapi.Domain.User'> </field>
        /// <field name='creation_date' type='Date'>date this post was created </field>
        /// <field name='last_edit_date' type='Date'>last time this post was edited  (optional)</field>
        /// <field name='last_activity_date' type='Date'>last time this post had any activity  (optional)</field>
        /// <field name='up_vote_count' type='Number'>number of up votes on this post </field>
        /// <field name='down_vote_count' type='Number'>number of down votes on this post </field>
        /// <field name='view_count' type='Number'>number of times this post has been viewed </field>
        /// <field name='score' type='Number'>score of this post </field>
        /// <field name='community_owned' type='Boolean'>whether this post is community owned </field>
        /// <field name='title' type='String'>title of this post </field>
        /// <field name='body' type='String'>body of this post.  (optional)</field>
        /// <field name='comments' type='Array'> </field>
        /// <returns type='Soapi.Domain.Answer'>

        /**
        * id of the answer
        * @field
        * @type Number
        */
        this.answer_id = 0;
        /**
        * whether this answer is the accepted answer on its question
        * @field
        * @type Boolean
        */
        this.accepted = false;
        /**
        * a link to the method that returns comments on this answer
        * @field
        * @type String
        */
        this.answer_comments_url = "";
        /**
        * id of the question this post is or is on
        * @field
        * @type Number
        */
        this.question_id = 0;
        /**
        * date this question was locked  (optional)
        * @field
        * @type Date
        */
        this.locked_date = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.User
        */
        this.owner = null;
        /**
        * date this post was created
        * @field
        * @type Date
        */
        this.creation_date = 0
        /**
        * last time this post was edited  (optional)
        * @field
        * @type Date
        */
        this.last_edit_date = 0;
        /**
        * last time this post had any activity  (optional)
        * @field
        * @type Date
        */
        this.last_activity_date = 0;
        /**
        * number of up votes on this post
        * @field
        * @type Number
        */
        this.up_vote_count = 0;
        /**
        * number of down votes on this post
        * @field
        * @type Number
        */
        this.down_vote_count = 0;
        /**
        * number of times this post has been viewed
        * @field
        * @type Number
        */
        this.view_count = 0;
        /**
        * score of this post
        * @field
        * @type Number
        */
        this.score = 0;
        /**
        * whether this post is community owned
        * @field
        * @type Boolean
        */
        this.community_owned = false;
        /**
        * title of this post
        * @field
        * @type String
        */
        this.title = "";
        /**
        * body of this post.  (optional)
        * @field
        * @type String
        */
        this.body = "";
        /**
        *
        * @field
        * @type Soapi.Domain.Comment[]
        */
        this.comments = [];
    };

    makeClass(Soapi.Domain.Answer, 'Soapi.Domain.Answer');
    /**
    * Creates a new ApiVersion.
    * @class Represents a ApiVersion object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.ApiVersion = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='version' type='String'>api version </field>
        /// <field name='revision' type='String'>site revision </field>
        /// <returns type='Soapi.Domain.ApiVersion'>
        /**
        * api version
        * @field
        * @type String
        */
        this.version = "";
        /**
        * site revision
        * @field
        * @type String
        */
        this.revision = "";
    };

    makeClass(Soapi.Domain.ApiVersion, 'Soapi.Domain.ApiVersion');
    /**
    * Creates a new Badge.
    * @class Represents a Badge object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.Badge = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='badge_id' type='Number'>id of the badge </field>
        /// <field name='rank' type='String'>rank of the badge; one of bronze, silver, or gold </field>
        /// <field name='name' type='String'>name of the badge </field>
        /// <field name='description' type='String'>description of the badge </field>
        /// <field name='award_count' type='Number'>number of times awarded </field>
        /// <field name='tag_based' type='Boolean'>whether this badge is based on a tag </field>
        /// <field name='user' type='Soapi.Domain.User'> </field>
        /// <field name='badges_recipients_url' type='String'>link to recipients of this badge </field>
        /// <returns type='Soapi.Domain.Badge'>
        /**
        * id of the badge
        * @field
        * @type Number
        */
        this.badge_id = 0;
        /**
        * rank of the badge; one of bronze, silver, or gold
        * @field
        * @type String
        */
        this.rank = "";
        /**
        * name of the badge
        * @field
        * @type String
        */
        this.name = "";
        /**
        * description of the badge
        * @field
        * @type String
        */
        this.description = "";
        /**
        * number of times awarded
        * @field
        * @type Number
        */
        this.award_count = 0;
        /**
        * whether this badge is based on a tag
        * @field
        * @type Boolean
        */
        this.tag_based
        /**
        *
        * @field
        * @type Soapi.Domain.User
        */
        this.user = null;
        /**
        * link to recipients of this badge
        * @field
        * @type String
        */
        this.badges_recipients_url = "";

    };

    makeClass(Soapi.Domain.Badge, 'Soapi.Domain.Badge');
    /**
    * Creates a new BadgeCounts.
    * @class Represents a BadgeCounts object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.BadgeCounts = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='gold' type='Number'>number of gold badges received  (optional)</field>
        /// <field name='silver' type='Number'>number of silver badges received  (optional)</field>
        /// <field name='bronze' type='Number'>number of bronze badges received  (optional)</field>
        /// <returns type='Soapi.Domain.BadgeCounts'>
        /**
        * number of gold badges received  (optional)
        * @field
        * @type Number
        */
        this.gold = 0;
        /**
        * number of silver badges received  (optional)
        * @field
        * @type Number
        */
        this.silver = 0;
        /**
        * number of bronze badges received  (optional)
        * @field
        * @type Number
        */
        this.bronze = 0;
    };

    makeClass(Soapi.Domain.BadgeCounts, 'Soapi.Domain.BadgeCounts');
    /**
    * Creates a new Comment.
    * @class Represents a Comment object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.Comment = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='comment_id' type='Number'>id of the comment </field>
        /// <field name='creation_date' type='Date'>creation date of the comment </field>
        /// <field name='owner' type='Soapi.Domain.User'> </field>
        /// <field name='reply_to_user' type='Soapi.Domain.User'> </field>
        /// <field name='post_id' type='Number'>post this comment is on </field>
        /// <field name='post_type' type='Soapi.Domain.PostType'>type of post this comment is on; one of question or answer.</field>
        /// <field name='score' type='Number'>number of upvotes on this comment </field>
        /// <field name='edit_count' type='Number'>number of times this comment has been edited  (optional)</field>
        /// <field name='body' type='String'>body of the comment </field>
        /// <returns type='Soapi.Domain.Comment'>
        /**
        * id of the comment
        * @field
        * @type Number
        */
        this.comment_id = 0;
        /**
        * creation date of the comment
        * @field
        * @type Date
        */
        this.creation_date = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.User
        */
        this.owner = null;
        /**
        *
        * @field
        * @type Soapi.Domain.User
        */
        this.reply_to_user = null;
        /**
        * post this comment is on
        * @field
        * @type Number
        */
        this.post_id = 0;
        /**
        * type of post this comment is on; one of question or answer
        * @field
        * @type Soapi.Domain.PostType
        */
        this.post_type = null;
        /**
        * number of upvotes on this comment
        * @field
        * @type Number = 0;
        */
        this.score
        /**
        * number of times this comment has been edited  (optional)
        * @field
        * @type Number = 0;
        */
        this.edit_count
        /**
        * body of the comment
        * @field
        * @type String
        */
        this.body = "";
    };

    makeClass(Soapi.Domain.Comment, 'Soapi.Domain.Comment');
    /**
    * Creates a new Migrated.
    * @class Represents a Migrated object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.Migrated = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='new_question_id' type='Number'>id of the question this one was migrated to </field>
        /// <field name='to_site' type='Soapi.Domain.Site'> </field>
        /// <field name='on_date' type='Date'>the date the migration occurred </field>
        /// <returns type='Soapi.Domain.Migrated'>
        /**
        * id of the question this one was migrated to
        * @field
        * @type Number
        */
        this.new_question_id = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.Site
        */
        this.to_site = null;
        /**
        * the date the migration occurred
        * @field
        * @type Date
        */
        this.on_date = 0;

    };

    makeClass(Soapi.Domain.Migrated, 'Soapi.Domain.Migrated');
    /**
    * Creates a new PostTimeline.
    * @class Represents a PostTimeline object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.PostTimeline = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='timeline_type' type='Soapi.Domain.PostTimelineType'>type of event . one of question, answer, comment, revision, votes, state, accepted, unaccepted</field>

        /// <field name='question_id' type='Number'>question this event is associated with, will be one of those passed into the method</field>
        /// <field name='post_id' type='Number'>post this event occurred on </field>
        /// <field name='comment_id' type='Number'>id of the comment  (optional)</field>
        /// <field name='revision_guid' type='String'>id of the revision  (optional)</field>
        /// <field name='creation_date' type='Date'>date this event occurred </field>
        /// <field name='user' type='Soapi.Domain.User'> </field>
        /// <field name='owner' type='Soapi.Domain.User'> </field>
        /// <field name='action' type='String'>the action </field>
        /// <field name='post_revision_url' type='String'>link to the particular revision  (optional)</field>
        /// <field name='post_url' type='String'>link to the post this event occurred on  (optional)</field>
        /// <field name='post_comment_url' type='String'>link to the comment  (optional)</field>
        /// <returns type='Soapi.Domain.PostTimeline'>

        /**
        * type of event . one of question, answer, comment, revision, votes, state, accepted, unaccepted
        * @field
        * @type Soapi.Domain.PostTimelineType
        */
        this.timeline_type = null;

        /**
        * question this event is associated with, will be one of those passed into the method
        * @field
        * @type Number
        */
        this.question_id = 0;
        /**
        * post this event occurred on
        * @field
        * @type Number
        */
        this.post_id = 0;
        /**
        * id of the comment  (optional)
        * @field
        * @type Number
        */
        this.comment_id = 0;
        /**
        * id of the revision  (optional)
        * @field
        * @type String
        */
        this.revision_guid = "";
        /**
        * date this event occurred
        * @field
        * @type Date
        */
        this.creation_date = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.User
        */
        this.user = null;
        /**
        *
        * @field
        * @type Soapi.Domain.User
        */
        this.owner = null;
        /**
        * the action
        * @field
        * @type String
        */
        this.action = "";
        /**
        * link to the particular revision  (optional)
        * @field
        * @type String
        */
        this.post_revision_url = "";
        /**
        * link to the post this event occurred on  (optional)
        * @field
        * @type String
        */
        this.post_url = "";
        /**
        * link to the comment  (optional)
        * @field
        * @type String
        */
        this.post_comment_url = "";
    };

    makeClass(Soapi.Domain.PostTimeline, 'Soapi.Domain.PostTimeline');
    /**
    * Creates a new Question.
    * @class Represents a Question object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.Question = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='tags' type='Array'> </field>
        /// <field name='answer_count' type='Number'>number of answer on this question </field>
        /// <field name='answers' type='Array'> </field>
        /// <field name='accepted_answer_id' type='Number'>id of the accepted answer  (optional)</field>
        /// <field name='favorite_count' type='Number'>number of users who have favorited this question </field>
        /// <field name='bounty_closes_date' type='Date'>date the bounty closes on this question  (optional)</field>
        /// <field name='bounty_amount' type='Number'>amount of rep the bounty is worth  (optional)</field>
        /// <field name='closed_date' type='Date'>date this question was closed  (optional)</field>
        /// <field name='closed_reason' type='String'>why this question was closed  (optional)</field>
        /// <field name='protected_date' type='Date'>date this question was protected  (optional)</field>
        /// <field name='migrated' type='Soapi.Domain.Migrated'> </field>
        /// <field name='question_timeline_url' type='String'>link to the timeline of this question </field>
        /// <field name='question_comments_url' type='String'>link to the comments on this question </field>
        /// <field name='question_answers_url' type='String'>link to the answers on this question </field>
        /// <field name='question_id' type='Number'>id of the question this post is or is on </field>
        /// <field name='locked_date' type='Date'>date this question was locked  (optional)</field>
        /// <field name='owner' type='Soapi.Domain.User'> </field>
        /// <field name='creation_date' type='Date'>date this post was created </field>
        /// <field name='last_edit_date' type='Date'>last time this post was edited  (optional)</field>
        /// <field name='last_activity_date' type='Date'>last time this post had any activity  (optional)</field>
        /// <field name='up_vote_count' type='Number'>number of up votes on this post </field>
        /// <field name='down_vote_count' type='Number'>number of down votes on this post </field>
        /// <field name='view_count' type='Number'>number of times this post has been viewed </field>
        /// <field name='score' type='Number'>score of this post </field>
        /// <field name='community_owned' type='Boolean'>whether this post is community owned </field>
        /// <field name='title' type='String'>title of this post </field>
        /// <field name='body' type='String'>body of this post.  (optional)</field>
        /// <field name='comments' type='Array'> </field>
        /// <returns type='Soapi.Domain.Question'>

        /**
        *
        * @field
        * @type String[]
        */
        this.tags
        /**
        * number of answer on this question
        * @field
        * @type Number
        */
        this.answer_count = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.Answer[]
        */
        this.answers = null;
        /**
        * id of the accepted answer  (optional)
        * @field
        * @type Number
        */
        this.accepted_answer_id = 0;
        /**
        * number of users who have favorited this question
        * @field
        * @type Number
        */
        this.favorite_count = 0;
        /**
        * date the bounty closes on this question  (optional)
        * @field
        * @type Date
        */
        this.bounty_closes_date = 0;
        /**
        * amount of rep the bounty is worth  (optional)
        * @field
        * @type Number
        */
        this.bounty_amount = 0;
        /**
        * date this question was closed  (optional)
        * @field
        * @type Date
        */
        this.closed_date = 0;
        /**
        * why this question was closed  (optional)
        * @field
        * @type String
        */
        this.closed_reason = "";
        /**
        * date this question was protected  (optional)
        * @field
        * @type Date
        */
        this.protected_date = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.Migrated
        */
        this.migrated = null;
        /**
        * link to the timeline of this question
        * @field
        * @type String
        */
        this.question_timeline_url = "";
        /**
        * link to the comments on this question
        * @field
        * @type String
        */
        this.question_comments_url = "";
        /**
        * link to the answers on this question
        * @field
        * @type String
        */
        this.question_answers_url = "";
        /**
        * id of the question this post is or is on
        * @field
        * @type Number
        */
        this.question_id = 0;
        /**
        * date this question was locked  (optional)
        * @field
        * @type Date
        */
        this.locked_date = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.User
        */
        this.owner = null;
        /**
        * date this post was created
        * @field
        * @type Date
        */
        this.creation_date = 0;
        /**
        * last time this post was edited  (optional)
        * @field
        * @type Date
        */
        this.last_edit_date = 0;
        /**
        * last time this post had any activity  (optional)
        * @field
        * @type Date
        */
        this.last_activity_date = 0;
        /**
        * number of up votes on this post
        * @field
        * @type Number
        */
        this.up_vote_count = 0;
        /**
        * number of down votes on this post
        * @field
        * @type Number
        */
        this.down_vote_count = 0;
        /**
        * number of times this post has been viewed
        * @field
        * @type Number
        */
        this.view_count = 0;
        /**
        * score of this post
        * @field
        * @type Number
        */
        this.score = 0;
        /**
        * whether this post is community owned
        * @field
        * @type Boolean
        */
        this.community_owned
        /**
        * title of this post
        * @field
        * @type String
        */
        this.title = "";
        /**
        * body of this post.  (optional)
        * @field
        * @type String
        */
        this.body = "";
        /**
        *
        * @field
        * @type Soapi.Domain.Comment[]
        */
        this.comments = null;
    };

    makeClass(Soapi.Domain.Question, 'Soapi.Domain.Question');
    /**
    * Creates a new RepChange.
    * @class Represents an RepChange object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.RepChange = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='user_id' type='Number'>user this rep_change affects </field>
        /// <field name='post_id' type='Number'>post this rep_change is from </field>
        /// <field name='post_type' type='Soapi.Domain.PostType'>type of post; one of question or answer </field>
        /// <field name='title' type='String'>title of the question the post either is or is on </field>
        /// <field name='positive_rep' type='Number'>amount of rep gained </field>
        /// <field name='negative_rep' type='Number'>amount of rep lost </field>
        /// <field name='on_date' type='Date'>when this rep was gained and/or lost </field>
        /// <returns type='Soapi.Domain.RepChange'>
        /**
        * user  this rep_change affects
        * @field
        * @type Number
        */
        this.user_id = 0;
        /**
        * post  this rep_change is from
        * @field
        * @type Number
        */
        this.post_id = 0;
        /**
        * type of post; one of question or answer
        * @field
        * @type Soapi.Domain.PostType
        */
        this.post_type = null;
        /**
        * title of the question the post either is or is on
        * @field
        * @type String
        */
        this.title = "";
        /**
        * amount of rep gained
        * @field
        * @type Number
        */
        this.positive_rep = 0;
        /**
        * amount of rep lost
        * @field
        * @type Number
        */
        this.negative_rep = 0;
        /**
        * when this rep was gained and/or lost
        * @field
        * @type Date
        */
        this.on_date = 0;
    };

    makeClass(Soapi.Domain.RepChange, 'Soapi.Domain.RepChange');
    /**
    * Creates a new Revision.
    * @class Represents a Revision object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.Revision = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='body' type='String'>body of the revision  (optional)</field>
        /// <field name='comment' type='String'>comment on the revision </field>
        /// <field name='creation_date' type='Date'>when the revision occurred </field>
        /// <field name='is_question' type='Boolean'>if the post is a question </field>
        /// <field name='is_rollback' type='Boolean'>if the revision is a rollback </field>
        /// <field name='last_body' type='String'>the previous body  (optional)</field>
        /// <field name='last_title' type='String'>the previous title  (optional)</field>
        /// <field name='last_tags' type='Array'> </field>
        /// <field name='revision_guid' type='String'>the id of the revision </field>
        /// <field name='revision_number' type='Number'>the revision number  (optional)</field>
        /// <field name='tags' type='Array'> </field>
        /// <field name='title' type='String'>the title of the revision  (optional)</field>
        /// <field name='revision_type' type='Soapi.Domain.RevisionType'>the revision type. one of single_user, vote_based</field>
        /// <field name='set_community_wiki' type='Boolean'>if this revision set the post to community wiki </field>
        /// <field name='user' type='Soapi.Domain.User'> </field>
        /// <field name='post_id' type='Number'>the post the revision is of </field>
        /// <returns type='Soapi.Domain.Revision'>
        /**
        * body of the revision  (optional)
        * @field
        * @type String
        */
        this.body = "";
        /**
        * comment on the revision
        * @field
        * @type String
        */
        this.comment = "";
        /**
        * when the revision occurred
        * @field
        * @type Date
        */
        this.creation_date = 0;
        /**
        * if the post is a question
        * @field
        * @type Boolean
        */
        this.is_question
        /**
        * if the revision is a rollback
        * @field
        * @type Boolean
        */
        this.is_rollback
        /**
        * the previous body  (optional)
        * @field
        * @type String
        */
        this.last_body = "";
        /**
        *  the previous title  (optional)
        * @field
        * @type String
        */
        this.last_title = "";
        /**
        *
        * @field
        * @type String[]
        */
        this.last_tags
        /**
        * the id of the revision
        * @field
        * @type String
        */
        this.revision_guid = "";
        /**
        * the revision number  (optional)
        * @field
        * @type Number
        */
        this.revision_number = 0;
        /**
        *
        * @field
        * @type String[]
        */
        this.tags
        /**
        * the title of the revision  (optional)
        * @field
        * @type String
        */
        this.title = "";
        /**
        * the revision type. one of single_user, vote_based
        * @field
        * @type Soapi.Domain.RevisionType
        */
        this.revision_type = null;
        /**
        * if this revision set the post to community wiki
        * @field
        * @type Boolean
        */
        this.set_community_wiki
        /**
        *
        * @field
        * @type Soapi.Domain.User
        */
        this.user = null;
        /**
        * the post the revision is of
        * @field
        * @type Number
        */
        this.post_id = 0;
    };

    makeClass(Soapi.Domain.Revision, 'Soapi.Domain.Revision');
    /**
    * Creates a new Site.
    * @class Represents a Site object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.Site = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='name' type='String'>name of the site </field>
        /// <field name='logo_url' type='String'>absolute path to the logo for the site </field>
        /// <field name='api_endpoint' type='String'>absolute path to the api endpoint for the site, sans the version string </field>
        /// <field name='site_url' type='String'>absolute path to the front page of the site </field>
        /// <field name='description' type='String'>description of the site, suitable for display to a user </field>
        /// <field name='icon_url' type='String'>absolute path to an icon suitable for representing the site, it is a consumers responsibility to scale </field>
        /// <field name='aliases' type='Array'> </field>
        /// <field name='state' type='Soapi.Domain.SiteState'>state of this site. one of normal, closed_beta, open_beta, linked_meta</field>
        /// <field name='styling' type='Soapi.Domain.Styling'></field>
        /// <returns type='Soapi.Domain.Site'>
        /**
        * name of the site
        * @field
        * @type String
        */
        this.name = "";
        /**
        * absolute path to the logo for the site
        * @field
        * @type String
        */
        this.logo_url = "";
        /**
        * absolute path to the api endpoint for the site, sans the version string
        * @field
        * @type String
        */
        this.api_endpoint = "";
        /**
        * absolute path to the front page of the site
        * @field
        * @type String
        */
        this.site_url = "";
        /**
        * description of the site, suitable for display to a user
        * @field
        * @type String
        */
        this.description = "";
        /**
        * absolute path to an icon suitable for representing the site, it is a consumers responsibility to scale
        * @field
        * @type String
        */
        this.icon_url = "";
        /**
        *
        * @field
        * @type String[]
        */
        this.aliases = [];
        /**
        * state of this site. one of normal, closed_beta, open_beta, linked_meta
        * @field
        * @type Soapi.Domain.SiteState
        */
        this.state = null;
        /**
        *
        * @field
        * @type Soapi.Domain.Styling
        */
        this.styling = null;
    };

    makeClass(Soapi.Domain.Site, 'Soapi.Domain.Site');
    /**
    * Creates a new Statistics.
    * @class Represents a Statistics object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.Statistics = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='total_questions' type='Number'>all questions on a site </field>
        /// <field name='total_unanswered' type='Number'>all unanswered questions on a site </field>
        /// <field name='total_accepted' type='Number'>count of questions with accept answers, or equivalently count of answers accepted </field>
        /// <field name='total_answers' type='Number'>all answers on a site </field>
        /// <field name='total_comments' type='Number'>all comments on a site </field>
        /// <field name='total_votes' type='Number'>all votes on a site </field>
        /// <field name='total_badges' type='Number'>all badges on a site </field>
        /// <field name='total_users' type='Number'>all users on a site </field>
        /// <field name='questions_per_minute' type='Number'>questions asked per minute </field>
        /// <field name='answers_per_minute' type='Number'>answers posted per minute </field>
        /// <field name='badges_per_minute' type='Number'>badges awarded per minute </field>
        /// <field name='views_per_day' type='Number'>average views per day on all questions </field>
        /// <field name='api_version' type='Soapi.Domain.ApiVersion'> </field>
        /// <field name='site' type='Soapi.Domain.Site'> </field>
        /// <returns type='Soapi.Domain.Statistics'>
        /**
        *
        * @field all questions on a site
        * @type Number
        */
        this.total_questions = 0;
        /**
        * all unanswered questions on a site
        * @field
        * @type Number
        */
        this.total_unanswered = 0;
        /**
        * count of questions with accept answers, or equivalently count of answers accepted
        * @field
        * @type Number
        */
        this.total_accepted = 0;
        /**
        * all answers on a site
        * @field
        * @type Number
        */
        this.total_answers = 0;
        /**
        * all comments on a site
        * @field
        * @type Number
        */
        this.total_comments = 0;
        /**
        * all votes on a site
        * @field
        * @type Number
        */
        this.total_votes = 0;
        /**
        * all badges on a site
        * @field
        * @type Number
        */
        this.total_badges = 0;
        /**
        * all users on a site
        * @field
        * @type Number
        */
        this.total_users = 0;
        /**
        * questions asked per minute
        * @field
        * @type Number
        */
        this.questions_per_minute = 0;
        /**
        * answers posted per minute
        * @field
        * @type Number
        */
        this.answers_per_minute = 0;
        /**
        * badges awarded per minute
        * @field
        * @type Number
        */
        this.badges_per_minute = 0;
        /**
        * average views per day on all questions
        * @field
        * @type Number
        */
        this.views_per_day = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.ApiVersion
        */
        this.api_version = null;
        /**
        *
        * @field
        * @type Soapi.Domain.Site
        */
        this.site = null;
    };

    makeClass(Soapi.Domain.Statistics, 'Soapi.Domain.Statistics');
    /**
    * Creates a new Tag.
    * @class Represents a Tag object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.Tag = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='name' type='String'>name of the tag </field>
        /// <field name='count' type='Number'>tag count, exact meaning depends on context </field>
        /// <field name='restricted_to' type='Soapi.Domain.UserType'>user types that can make use of this tag, lack of this field indicates it is useable by all  (optional) one of anonymous, unregistered, registered, moderator</field>
        /// <field name='fulfills_required' type='Boolean'>indicates whether this tag is one of those that is required to be on a post </field>
        /// <field name='user_id' type='Number'>user associated with this tag, depends on context  (optional)</field>
        /// <returns type='Soapi.Domain.Tag'>
        /**
        * name of the tag
        * @field
        * @type String
        */
        this.name = "";
        /**
        * tag count, exact meaning depends on context
        * @field
        * @type Number
        */
        this.count = 0;
        /**
        * user types that can make use of this tag, lack of this field indicates it is useable by all  (optional) one of anonymous, unregistered, registered, moderator
        * @field
        * @type Soapi.Domain.UserType
        */
        this.restricted_to = null;
        /**
        * indicates whether this tag is one of those that is required to be on a post
        * @field
        * @type Boolean
        */
        this.fulfills_required
        /**
        * user associated with this tag, depends on context  (optional)
        * @field
        * @type Number
        */
        this.user_id = 0;

    };

    makeClass(Soapi.Domain.Tag, 'Soapi.Domain.Tag');
    /**
    * Creates a new User.
    * @class Represents a User object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.User = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='user_id' type='Number'>id of the user </field>
        /// <field name='user_type' type='Soapi.Domain.UserType'>type of the user. one of anonymous, unregistered, registered, moderator </field>
        /// <field name='creation_date' type='Date'>date user was created </field>
        /// <field name='display_name' type='String'>displayable name of the user </field>
        /// <field name='reputation' type='Number'>reputation of the user </field>
        /// <field name='email_hash' type='String'>email hash, suitable for fetching a gravatar </field>
        /// <field name='age' type='Number'>age of the user  (optional)</field>
        /// <field name='last_access_date' type='Date'>last date this user accessed the site </field>
        /// <field name='website_url' type='String'>user's website  (optional)</field>
        /// <field name='location' type='String'>user's location  (optional)</field>
        /// <field name='about_me' type='String'>user's about me blurb  (optional)</field>
        /// <field name='question_count' type='Number'>number of questions asked </field>
        /// <field name='answer_count' type='Number'>number of answers posted </field>
        /// <field name='view_count' type='Number'>number of times profile viewed </field>
        /// <field name='up_vote_count' type='Number'>number of times this user has up voted </field>
        /// <field name='down_vote_count' type='Number'>number of times this user has down voted </field>
        /// <field name='accept_rate' type='Number'>user's answer acceptance rate  (optional)</field>
        /// <field name='association_id' type='String'>identifier for this user across all SE sites  (optional)</field>
        /// <field name='user_questions_url' type='String'>link to the questions the user has asked </field>
        /// <field name='user_answers_url' type='String'>link to the answers the user has posted </field>
        /// <field name='user_favorites_url' type='String'>link to the questions the user has favorited </field>
        /// <field name='user_tags_url' type='String'>link to a list of tags the user has participated in </field>
        /// <field name='user_badges_url' type='String'>link to a list of badges the user has receieved </field>
        /// <field name='user_timeline_url' type='String'>link to the timeline of this user </field>
        /// <field name='user_mentioned_url' type='String'>link to a list of comments which mention this user </field>
        /// <field name='user_comments_url' type='String'>link to a list of comments this user has made </field>
        /// <field name='user_reputation_url' type='String'>link to a list of rep_changes that this user has experienced </field>
        /// <field name='badge_counts' type='Soapi.Domain.BadgeCounts'> </field>
        /// <field name='timed_penalty_date' type='Date'>date until which this user is in the "penalty box"  (optional)</field>
        /// <field name='on_site' type='Soapi.Domain.Site'></field>
        /// <returns type="Soapi.Domain.User"/>
        /**
        * id of the user
        * @field
        * @type Number
        */
        this.user_id = 0;
        /**
        * type of the user. one of anonymous, unregistered, registered, moderator
        * @field
        * @type Soapi.Domain.UserType
        */
        this.user_type = null;
        /**
        * date user was created
        * @field
        * @type Date
        */
        this.creation_date = 0;
        /**
        * displayable name of the user
        * @field
        * @type String
        */
        this.display_name = "";
        /**
        * reputation of the user
        * @field
        * @type Number
        */
        this.reputation = 0;
        /**
        * email hash, suitable for fetching a gravatar
        * @field
        * @type String
        */
        this.email_hash = "";
        /**
        * age of the user  (optional)
        * @field
        * @type Number
        */
        this.age = 0;
        /**
        * last date this user accessed the site
        * @field
        * @type Date
        */
        this.last_access_date = 0;
        /**
        * user's website  (optional)
        * @field
        * @type String
        */
        this.website_url = "";
        /**
        * user's location  (optional)
        * @field
        * @type String
        */
        this.location = "";
        /**
        * user's about me blurb  (optional)
        * @field
        * @type String
        */
        this.about_me = "";
        /**
        * number of questions asked
        * @field
        * @type Number  = 0;
        */
        this.question_count
        /**
        * number of answers posted
        * @field
        * @type Number  = 0;
        */
        this.answer_count
        /**
        * number of times profile viewed
        * @field
        * @type Number  = 0;
        */
        this.view_count
        /**
        * number of times this user has up voted
        * @field
        * @type Number  = 0;
        */
        this.up_vote_count
        /**
        * number of times this user has down voted
        * @field
        * @type Number  = 0;
        */
        this.down_vote_count
        /**
        * user's answer acceptance rate  (optional)
        * @field
        * @type Number
        */
        this.accept_rate = 0;
        /**
        * identifier for this user across all SE sites  (optional)
        * @field
        * @type String
        */
        this.association_id = "";
        /**
        * link to the questions the user has asked
        * @field
        * @type String
        */
        this.user_questions_url = "";
        /**
        * link to the answers the user has posted
        * @field
        * @type String
        */
        this.user_answers_url = "";
        /**
        * link to the questions the user has favorited
        * @field
        * @type String
        */
        this.user_favorites_url = "";
        /**
        * link to a list of tags the user has participated in
        * @field
        * @type String
        */
        this.user_tags_url = "";
        /**
        * link to a list of badges the user has receieved
        * @field
        * @type String
        */
        this.user_badges_url = "";
        /**
        * link to the timeline of this user
        * @field
        * @type String
        */
        this.user_timeline_url = "";
        /**
        * link to a list of comments which mention this user
        * @field
        * @type String
        */
        this.user_mentioned_url = "";
        /**
        * link to a list of comments this user has made
        * @field
        * @type String
        */
        this.user_comments_url = "";
        /**
        * link to a list of rep_changes that this user has experienced
        * @field
        * @type String
        */
        this.user_reputation_url = "";
        /**
        *
        * @field
        * @type Soapi.Domain.BadgeCounts
        */
        this.badge_counts = null;
        /**
        * date until which this user is in the "penalty box"  (optional)
        * @field
        * @type Date
        */
        this.timed_penalty_date = 0;
    };

    makeClass(Soapi.Domain.User, 'Soapi.Domain.User');
    /**
    * Creates a new UserTimeline.
    * @class Represents a UserTimeline object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Domain.UserTimeline = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='user_id' type='Number'>user experiencing this event  (optional)</field>
        /// <field name='timeline_type' type='Soapi.Domain.UserTimelineType'>type of event  (optional) one of comment, askoranswered, badge, revision, accepted</field>
        /// <field name='post_id' type='Number'>post id  (optional)</field>
        /// <field name='post_type' type='Soapi.Domain.PostType'>post type; one of question or answer  (optional)</field>
        /// <field name='comment_id' type='Number'>comment id  (optional)</field>
        /// <field name='action' type='String'>action of this event  (optional)</field>
        /// <field name='creation_date' type='Date'>when this event occurred  (optional)</field>
        /// <field name='description' type='String'>description of this event  (optional)</field>
        /// <field name='detail' type='String'>details of this event  (optional)</field>
        /// <returns type='Soapi.Domain.UserTimeline'>
        /**
        * user experiencing this event  (optional)
        * @field
        * @type Number
        */
        this.user_id = 0;
        /**
        * type of event  (optional) one of comment, askoranswered, badge, revision, accepted
        * @field
        * @type Soapi.Domain.UserTimelineType
        */
        this.timeline_type = null;
        /**
        * post id  (optional)
        * @field
        * @type Number
        */
        this.post_id = 0;
        /**
        * post type; one of question or answer  (optional)
        * @field
        * @type Soapi.Domain.PostType
        */
        this.post_type = null;
        /**
        * comment id  (optional)
        * @field
        * @type Number
        */
        this.comment_id = 0;
        /**
        * action of this event  (optional)
        * @field
        * @type String
        */
        this.action = "";
        /**
        * when this event occurred  (optional)
        * @field
        * @type Date
        */
        this.creation_date = 0;
        /**
        * description of this event  (optional)
        * @field
        * @type String
        */
        this.description = "";
        /**
        * details of this event  (optional)
        * @field
        * @type String
        */
        this.detail = "";
    };

    makeClass(Soapi.Domain.UserTimeline, 'Soapi.Domain.UserTimeline');
    /* Soapi.Responses
    **************************************
    */

    /**
    * Creates a new AnswersResponse.
    * @class Represents a AnswersResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.AnswersResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='total' type='Number'>total number of items in this sequence </field>
        /// <field name='page' type='Number'>page of the total collection returned </field>
        /// <field name='pagesize' type='Number'>size of each page returned from the collection </field>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.AnswersResponse'>

        /**
        * total number of items in this sequence
        * @field
        * @type  Number
        */
        this.total = 0;
        /**
        * page of the total collection returned
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * size of each page returned from the collection
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.Answer[]
        */
        this.items = null;
    };

    makeClass(Soapi.Responses.AnswersResponse, 'Soapi.Responses.AnswersResponse');
    /**
    * Creates a new CommentsResponse.
    * @class Represents a CommentsResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.CommentsResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='total' type='Number'>total number of items in this sequence </field>
        /// <field name='page' type='Number'>page of the total collection returned </field>
        /// <field name='pagesize' type='Number'>size of each page returned from the collection </field>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.CommentsResponse'>
        /**
        * total number of items in this sequence
        * @field
        * @type Number
        */
        this.total = 0;
        /**
        * page of the total collection returned
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * size of each page returned from the collection
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.Comment[]
        */
        this.items = null;

    };

    makeClass(Soapi.Responses.CommentsResponse, 'Soapi.Responses.CommentsResponse');
    /**
    * Creates a new BadgesResponse.
    * @class Represents a BadgesResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.BadgesResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.BadgesResponse'>
        /**
        *
        * @field
        * @type Soapi.Domain.Badge[]
        */
        this.items = null;

    };

    makeClass(Soapi.Responses.BadgesResponse, 'Soapi.Responses.BadgesResponse');
    /**
    * Creates a new UsersResponse.
    * @class Represents a UsersResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.UsersResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='total' type='Number'>total number of items in this sequence </field>
        /// <field name='page' type='Number'>page of the total collection returned </field>
        /// <field name='pagesize' type='Number'>size of each page returned from the collection </field>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.UsersResponse'>
        /**
        * total number of items in this sequence
        * @field
        * @type Number
        */
        this.total = 0;
        /**
        * page of the total collection returned
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * size of each page returned from the collection
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.User[]
        */
        this.items = null;
    };

    makeClass(Soapi.Responses.UsersResponse, 'Soapi.Responses.UsersResponse');

    /**
    * Creates a new ErrorsResponse.
    * @class Represents a ErrorsResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.ErrorsResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='code' type='Number'>code of the error </field>
        /// <field name='message' type='String'>descriptive message about the error </field>
        /// <field name='url' type='String'>the url that generated the error</field>
        /// <returns type='Soapi.Responses.ErrorsResponse'>
        /**
        * code of the error
        * @field
        * @type Number
        */
        this.code = 0;
        /**
        * descriptive message about the error
        * @field
        * @type String
        */
        this.message = "";
        /**
        * the url that generated the error
        * @field
        * @type String
        */
        this.url = "";
    };

    makeClass(Soapi.Responses.ErrorsResponse, 'Soapi.Responses.ErrorsResponse');

    /**
    * Creates a new QuestionsResponse.
    * @class Represents a QuestionsResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.QuestionsResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='total' type='Number'>total number of items in this sequence </field>
        /// <field name='page' type='Number'>page of the total collection returned </field>
        /// <field name='pagesize' type='Number'>size of each page returned from the collection </field>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.QuestionsResponse'>
        /**
        * total number of items in this sequence
        * @field
        * @type Number
        */
        this.total = 0;
        /**
        * page of the total collection returned
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * size of each page returned from the collection
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.Question[]
        */
        this.items = null;

    };

    makeClass(Soapi.Responses.QuestionsResponse, 'Soapi.Responses.QuestionsResponse');
    /**
    * Creates a new PostTimelineResponse.
    * @class Represents a PostTimelineResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.PostTimelineResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='total' type='Number'>total number of items in this sequence </field>
        /// <field name='page' type='Number'>page of the total collection returned </field>
        /// <field name='pagesize' type='Number'>size of each page returned from the collection </field>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.PostTimelineResponse'>
        /**
        * total number of items in this sequence
        * @field
        * @type Number
        */
        this.total = 0;
        /**
        * page of the total collection returned
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * size of each page returned from the collection
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.PostTimeline[]
        */
        this.items = null;
    };

    makeClass(Soapi.Responses.PostTimelineResponse, 'Soapi.Responses.PostTimelineResponse');
    /**
    * Creates a new RevisionsResponse.
    * @class Represents a RevisionsResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.RevisionsResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.RevisionsResponse'>
        /**
        *
        * @field
        * @type Soapi.Domain.Revision[]
        */
        this.items = null;

    };

    makeClass(Soapi.Responses.RevisionsResponse, 'Soapi.Responses.RevisionsResponse');
    /**
    * Creates a new StatsResponse.
    * @class Represents a StatsResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.StatsResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.StatsResponse'>
        /**
        *
        * @field
        * @type Soapi.Domain.Statistics[]
        */
        this.items = null;

    };

    makeClass(Soapi.Responses.StatsResponse, 'Soapi.Responses.StatsResponse');
    /**
    * Creates a new TagsResponse.
    * @class Represents a TagsResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.TagsResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='total' type='Number'>total number of items in this sequence </field>
        /// <field name='page' type='Number'>page of the total collection returned </field>
        /// <field name='pagesize' type='Number'>size of each page returned from the collection </field>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.TagsResponse'>
        /**
        * total number of items in this sequence
        * @field
        * @type Number
        */
        this.total = 0;
        /**
        * page of the total collection returned
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * size of each page returned from the collection
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.Tag[]
        */
        this.items = null;
    };

    makeClass(Soapi.Responses.TagsResponse, 'Soapi.Responses.TagsResponse');
    /**
    * Creates a new RepChangesResponse.
    * @class Represents a RepChangesResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.RepChangesResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='total' type='Number'>total number of items in this sequence </field>
        /// <field name='page' type='Number'>page of the total collection returned </field>
        /// <field name='pagesize' type='Number'>size of each page returned from the collection </field>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.RepChangesResponse'>
        /**
        * total number of items in this sequence
        * @field
        * @type Number
        */
        this.total = 0;
        /**
        * page of the total collection returned
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * size of each page returned from the collection
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.RepChange[]
        */
        this.items = null;
    };

    makeClass(Soapi.Responses.RepChangesResponse, 'Soapi.Responses.RepChangesResponse');
    /**
    * Creates a new UserTimelinesResponse.
    * @class Represents a UserTimelinesResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.UserTimelinesResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='total' type='Number'>total number of items in this sequence </field>
        /// <field name='page' type='Number'>page of the total collection returned </field>
        /// <field name='pagesize' type='Number'>size of each page returned from the collection </field>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.UserTimelinesResponse'>
        /**
        * total number of items in this sequence
        * @field
        * @type Number
        */
        this.total = 0;
        /**
        * page of the total collection returned
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * size of each page returned from the collection
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        *
        * @field
        * @type Soapi.Domain.PostTimeline[]
        */
        this.items = null;
    };

    makeClass(Soapi.Responses.UserTimelinesResponse, 'Soapi.Responses.UserTimelinesResponse');
    /**
    * Creates a new SitesResponse.
    * @class Represents a SitesResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.SitesResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.SitesResponse'>
        /**
        *
        * @field
        * @type Soapi.Domain.Site[]
        */
        this.items = null;
    };

    makeClass(Soapi.Responses.SitesResponse, 'Soapi.Responses.SitesResponse');
    /**
    * Creates a new UsersAssociatedResponse.
    * @class Represents a UsersAssociatedResponse object.
    * @param {Object} [jsob] Optional initilizer object.
    */
    Soapi.Responses.UsersAssociatedResponse = function(jsob)
    {
        /// <param name='jsob' type='Object'>Optional initilizer object</param>
        /// <field name='items' type='Array'> </field>
        /// <returns type='Soapi.Responses.UsersAssociatedResponse'>
        /**
        *
        * @field
        * @type Soapi.Domain.User[]
        */
        this.items = null;
    };

    makeClass(Soapi.Responses.UsersAssociatedResponse, 'Soapi.Responses.UsersAssociatedResponse');

    /* Soapi.Domain RouteMaps
    **************************************
    */




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + SitesRouteMap  : /sites Returns a list of all the sites in the StackExchange network.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#Sites} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://stackauth.com/1.0/help/method?method=sites" target="_blank">stackauth.com/1.0/help/method?method=sites</a> to return a list of all the sites in the StackExchange network.
    * @augments Soapi.Routes.Route
    * @see <a href="http://stackauth.com/1.0/help/method?method=sites" target="_blank">stackauth.com/1.0/help/method?method=sites</a>
    */
    Soapi.Routes.SitesRouteMap = function()
    {
        /// <summary>
        /// Returns a list of all the sites in the StackExchange network.
        /// NOTE: the target of the constructing factory is ignored when requesting
        /// api sites. This means you may use any existing factory instance or
        /// simply create a factory with no target.
        /// </summary>
        /// <returns type='Soapi.Routes.SitesRouteMap'/>
    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.SitesRouteMap.routeFormat = null;

    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.SitesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.SitesResponse, context, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.SitesRouteMap}
    */
    Soapi.Routes.SitesRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(SitesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(SitesResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.SitesRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.SitesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.SitesRouteMap}
    */
    Soapi.Routes.SitesRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {

        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(SitesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.SitesRouteMap"/>
    };


    makeClass(Soapi.Routes.SitesRouteMap, 'Soapi.Routes.SitesRouteMap');

    /**
    * Creates a new SitesRouteMap to provide access to <a href="http://stackauth.com/1.0/help/method?method=sites" target="_blank">stackauth.com/1.0/help/method?method=sites</a> to return a list of all the sites in the StackExchange network.
    * @returns {Soapi.Routes.SitesRouteMap}
    */
    Soapi.RouteFactory.prototype.Sites = function()
    {
        /// <summary>
        /// Returns a list of all the sites in the StackExchange network.
        /// NOTE: the target of the constructing factory is ignored when requesting
        /// associated users. This means you may use any existing factory instance or
        /// simply create a factory with no target.
        /// </summary>
        /// <returns type='Soapi.Routes.SitesRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdAssociatedRouteMap : /users/{id}/associated Gets all the associated user accounts across the StackExchange network as identified by the given association_id.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdAssociated} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://stackauth.com/1.0/help/method?method=users/{id}/associated" target="_blank">stackauth.com/1.0/help/method?method=users/{id}/associated</a> to get all the associated user accounts across the StackExchange network as identified by the given association_id.
    * @param {String} id user's association_id
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String} [params.id] user's association_id    
    * @augments Soapi.Routes.Route
    * @see <a href="http://stackauth.com/1.0/help/method?method=users/{id}/associated" target="_blank">stackauth.com/1.0/help/method?method=users/{id}/associated</a>
    */
    Soapi.Routes.UsersByIdAssociatedRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets all the associated user accounts across the StackExchange network as identified by the given association_id
        /// </summary>
        /// <param name='id' type='String'>user's association_id</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route.  { id: String }</param>
        /// <field name='id' type='String'>user's association_id</field>
        /// <returns type='Soapi.Routes.UsersByIdAssociatedRouteMap'/>



        /**
        * user's association_id
        * @field
        * @type String
        */
        this.id = null;
    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdAssociatedRouteMap.routeFormat = null;

    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String} params.id user's association_id
    * @returns {Soapi.Routes.UsersByIdAssociatedRouteMap}
    */
    Soapi.Routes.UsersByIdAssociatedRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String }</param>
        /// <returns type="Soapi.Routes.UsersByIdAssociatedRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.UsersAssociatedResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.UsersAssociatedResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdAssociatedRouteMap}
    */
    Soapi.Routes.UsersByIdAssociatedRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(UsersAssociatedResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(UsersAssociatedResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdAssociatedRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.UsersAssociatedResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdAssociatedRouteMap}
    */
    Soapi.Routes.UsersByIdAssociatedRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(UsersAssociatedResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdAssociatedRouteMap"/>
    };

    makeClass(Soapi.Routes.UsersByIdAssociatedRouteMap, 'Soapi.Routes.UsersByIdAssociatedRouteMap');

    /**
    *
    * Creates a new UsersByIdAssociatedRouteMap to provide access to <a href="http://stackauth.com/1.0/help/method?method=users/{id}/associated" target="_blank">stackauth.com/1.0/help/method?method=users/{id}/associated</a> to get all the associated user accounts across the StackExchange network as identified by the given association_id.
    * @param {String} id user's association_id
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String} [params.id] user's association_id        
    * @returns {Soapi.Routes.UsersByIdAssociatedRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersByIdAssociated = function(id, params)
    {
        /// <summary>
        /// Gets all the associated user accounts across the StackExchange network as identified by the given association_id
        /// </summary>
        /// <param name='id' type='String'>user's association_id</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route.  { id: String }</param>        
        /// <returns type='Soapi.Routes.UsersByIdAssociatedRouteMap'/>
    };









    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + AnswersByIdRouteMap : /answers/{id}  Gets the set of answers enumerated in id.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#AnswersById} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=answers/{id}" target="_blank">/answers/{id}</a> to get the set of answers enumerated in id.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=answers/{id}" target="_blank">/answers/{id}</a>
    */
    Soapi.Routes.AnswersByIdRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the set of answers enumerated in id.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name='params' type='Object'>(optional) An object map of parameters to apply to this route. { id: String|Array, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='body' type='Boolean'>When "true", a post's body will be included in the response.</field>
        /// <field name='comments' type='Boolean'>When "true", any comments on a post will be included in the response.</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.PostSort'>one of activity (default), views, creation, votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.AnswersByIdRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = null;
        /**
        * When "true", a post's body will be included in the response.
        * @field
        * @type Boolean
        */
        this.body = null;
        /**
        * When "true", any comments on a post will be included in the response.
        * @field
        * @type Boolean
        */
        this.comments = null;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        *
        * @fieldone of desc, asc
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = null;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = null;
        /**
        * one of activity, views, creation, votes
        * @field
        * @type Soapi.Domain.PostSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;


    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.AnswersByIdRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.AnswersByIdRouteMap}
    */
    Soapi.Routes.AnswersByIdRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.AnswersByIdRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.AnswersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.AnswersResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.AnswersByIdRouteMap}
    */
    Soapi.Routes.AnswersByIdRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(AnswersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(AnswersResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.AnswersByIdRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.AnswersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.AnswersByIdRouteMap}
    */
    Soapi.Routes.AnswersByIdRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(AnswersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.AnswersByIdRouteMap"/>
    };

    makeClass(Soapi.Routes.AnswersByIdRouteMap, 'Soapi.Routes.AnswersByIdRouteMap');

    /**
    * Creates a new AnswersByIdRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=answers/{id}" target="_blank">/answers/{id}</a> to get the set of answers enumerated in id.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.AnswersByIdRouteMap}
    */
    Soapi.RouteFactory.prototype.AnswersById = function(id, params)
    {
        /// <summary>
        /// Gets the set of answers enumerated in id.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name='params' type='Object'>(optional) An object map of parameters to apply to this route. { id: String|Array, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.AnswersByIdRouteMap'/>
    };



    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + AnswersByIdCommentsRouteMap : /answers/{id}/comments Gets the comments associated with a set of answers.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#AnswersByIdComments} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=answers/{id}/comments" target="_blank">/answers/{id}/comments</a> to get the comments associated with a set of answers.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=answers/{id}/comments" target="_blank">/answers/{id}/comments</a>
    */
    Soapi.Routes.AnswersByIdCommentsRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the comments associated with a set of answers.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.CommentSort'>one of creation (default), votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.AnswersByIdCommentsRouteMap'/>




        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = null;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = null;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = null;
        /**
        * one of creation, votes
        * @field
        * @type Soapi.Domain.CommentSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.AnswersByIdCommentsRouteMap.routeFormat = null;

    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.AnswersByIdCommentsRouteMap}
    */
    Soapi.Routes.AnswersByIdCommentsRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.AnswersByIdCommentsRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.CommentsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.AnswersByIdCommentsRouteMap}
    */
    Soapi.Routes.AnswersByIdCommentsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(CommentsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.AnswersByIdCommentsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.AnswersByIdCommentsRouteMap}
    */
    Soapi.Routes.AnswersByIdCommentsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.AnswersByIdCommentsRouteMap"/>
    };

    makeClass(Soapi.Routes.AnswersByIdCommentsRouteMap, 'Soapi.Routes.AnswersByIdCommentsRouteMap');
    /**
    * Creates a new AnswersByIdCommentsRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=answers/{id}/comments" target="_blank">/answers/{id}/comments</a> to get the comments associated with a set of answers.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.AnswersByIdCommentsRouteMap}
    */
    Soapi.RouteFactory.prototype.AnswersByIdComments = function(id, params)
    {
        /// <summary>
        /// Gets the comments associated with a set of answers.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.AnswersByIdCommentsRouteMap'/>
    };



    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + BadgesRouteMap : /badges  Gets all badges, in alphabetical order.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#Badges} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=badges" target="_blank">/badges</a> to get all badges, in alphabetical order.
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=badges" target="_blank">/badges</a>
    */
    Soapi.Routes.BadgesRouteMap = function()
    {
        /// <summary>
        /// Gets all badges, in alphabetical order.
        /// </summary>
        /// <returns type='Soapi.Routes.BadgesRouteMap'/>


    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.BadgesRouteMap.routeFormat = null;

    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.BadgesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.BadgesResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.BadgesRouteMap}
    */
    Soapi.Routes.BadgesRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(BadgesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(BadgesResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.BadgesRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.BadgesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.BadgesRouteMap}
    */
    Soapi.Routes.BadgesRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(BadgesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.BadgesRouteMap"/>
    };

    makeClass(Soapi.Routes.BadgesRouteMap, 'Soapi.Routes.BadgesRouteMap');
    /**
    * Creates a new BadgesRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=badges" target="_blank">/badges</a> to get all badges, in alphabetical order.
    * @returns {Soapi.Routes.BadgesRouteMap}
    */
    Soapi.RouteFactory.prototype.Badges = function()
    {
        /// <summary>
        /// Gets all badges, in alphabetical order.
        /// </summary>
        /// <returns type='Soapi.Routes.BadgesRouteMap'/>
    };



    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + BadgesByIdRouteMap : /badges/{id} Gets the users that have been awarded the badges identified in 'id'.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#BadgesById} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=badges/{id}" target="_blank">/badges/{id}</a> to get the users that have been awarded the badges identified in 'id'.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=badges/{id}" target="_blank">/badges/{id}</a>
    */
    Soapi.Routes.BadgesByIdRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the users that have been awarded the badges identified in 'id'.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.BadgesByIdRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = null;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = null;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;
    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.BadgesByIdRouteMap.routeFormat = null;

    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.BadgesByIdRouteMap}
    */
    Soapi.Routes.BadgesByIdRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <returns type="Soapi.Routes.BadgesByIdRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.BadgesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.BadgesResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.BadgesByIdRouteMap}
    */
    Soapi.Routes.BadgesByIdRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(BadgesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(BadgesResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.BadgesByIdRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.BadgesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.BadgesByIdRouteMap}
    */
    Soapi.Routes.BadgesByIdRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(BadgesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.BadgesByIdRouteMap"/>
    };


    makeClass(Soapi.Routes.BadgesByIdRouteMap, 'Soapi.Routes.BadgesByIdRouteMap');
    /**
    *
    * Creates a new BadgesByIdRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=badges/{id}" target="_blank">/badges/{id}</a> to get the users that have been awarded the badges identified in 'id'.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.BadgesByIdRouteMap}
    */
    Soapi.RouteFactory.prototype.BadgesById = function(id, params)
    {
        /// <summary>
        /// Gets the users that have been awarded the badges identified in 'id'.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <returns type='Soapi.Routes.BadgesByIdRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + BadgesNameRouteMap : /badges/name Gets all standard, non-tag-based badges in alphabetical order.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#BadgesName} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=badges/name" target="_blank">/badges/name</a> to get all standard, non-tag-based badges in alphabetical order.
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=badges/name" target="_blank">/badges/name</a>
    */
    Soapi.Routes.BadgesNameRouteMap = function()
    {
        /// <summary>
        /// Gets all standard, non-tag-based badges in alphabetical order.
        /// </summary>
        /// <returns type='Soapi.Routes.BadgesNameRouteMap'/>



    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.BadgesNameRouteMap.routeFormat = null;


    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.BadgesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.BadgesResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.BadgesNameRouteMap}
    */
    Soapi.Routes.BadgesNameRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(BadgesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(BadgesResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.BadgesNameRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.BadgesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.BadgesNameRouteMap}
    */
    Soapi.Routes.BadgesNameRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(BadgesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.BadgesNameRouteMap"/>
    };
    makeClass(Soapi.Routes.BadgesNameRouteMap, 'Soapi.Routes.BadgesNameRouteMap');
    /**
    *
    * Creates a new BadgesNameRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=badges/name" target="_blank">/badges/name</a> to get all standard, non-tag-based badges in alphabetical order.
    * @returns {Soapi.Routes.BadgesNameRouteMap}
    */
    Soapi.RouteFactory.prototype.BadgesName = function()
    {
        /// <summary>
        /// Gets all standard, non-tag-based badges in alphabetical order.
        /// </summary>
        /// <returns type='Soapi.Routes.BadgesNameRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + BadgesTagsRouteMap : /badges/tags Gets all tag-based badges in alphabetical order.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#BadgesTags} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=badges/tags" target="_blank">/badges/tags</a> to get all tag-based badges in alphabetical order.
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=badges/tags" target="_blank">/badges/tags</a>
    */
    Soapi.Routes.BadgesTagsRouteMap = function()
    {
        /// <summary>
        /// Gets all tag-based badges in alphabetical order.
        /// </summary>
        /// <returns type='Soapi.Routes.BadgesTagsRouteMap'/>

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.BadgesTagsRouteMap.routeFormat = null;


    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.BadgesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.BadgesResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.BadgesTagsRouteMap}
    */
    Soapi.Routes.BadgesTagsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(BadgesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(BadgesResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.BadgesTagsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.BadgesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.BadgesTagsRouteMap}
    */
    Soapi.Routes.BadgesTagsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(BadgesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.BadgesTagsRouteMap"/>
    };


    makeClass(Soapi.Routes.BadgesTagsRouteMap, 'Soapi.Routes.BadgesTagsRouteMap');
    /**
    * Creates a new BadgesTagsRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=badges/tags" target="_blank">/badges/tags</a> to get all tag-based badges in alphabetical order.
    * @returns {Soapi.Routes.BadgesTagsRouteMap}
    */
    Soapi.RouteFactory.prototype.BadgesTags = function()
    {
        /// <summary>
        /// Gets all tag-based badges in alphabetical order.
        /// </summary>
        /// <returns type='Soapi.Routes.BadgesTagsRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + CommentsByIdRouteMap : /comments/{id} Gets comments by ids.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#CommentsById} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=comments/{id}" target="_blank">/comments/{id}</a> to get comments by ids.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=comments/{id}" target="_blank">/comments/{id}</a>
    */
    Soapi.Routes.CommentsByIdRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets comments by ids.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date,  }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.CommentSort'>one of creation (default), votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.CommentsByIdRouteMap'/>



        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = null;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = null;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = null;
        /**
        * one of creation, votes
        * @field
        * @type Soapi.Domain.CommentSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;


    };


    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.CommentsByIdRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.CommentsByIdRouteMap}
    */
    Soapi.Routes.CommentsByIdRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date,  }</param>
        /// <returns type="Soapi.Routes.CommentsByIdRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.CommentsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.CommentsByIdRouteMap}
    */
    Soapi.Routes.CommentsByIdRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(CommentsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.CommentsByIdRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.CommentsByIdRouteMap}
    */
    Soapi.Routes.CommentsByIdRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.CommentsByIdRouteMap"/>
    };

    makeClass(Soapi.Routes.CommentsByIdRouteMap, 'Soapi.Routes.CommentsByIdRouteMap');
    /**
    * Creates a new CommentsByIdRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=comments/{id}" target="_blank">/comments/{id}</a> to get comments by ids.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.CommentsByIdRouteMap}
    */
    Soapi.RouteFactory.prototype.CommentsById = function(id, params)
    {
        /// <summary>
        /// Gets comments by ids.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date,  }</param>
        /// <returns type='Soapi.Routes.CommentsByIdRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + ErrorsByIdRouteMap : /errors/{id} Simulates an error given its code
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#ErrorsById} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=errors/{id}" target="_blank">/errors/{id}</a> to simulate an error given its code
    * @param {Number} id id of the error to simulate
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=errors/{id}" target="_blank">/errors/{id}</a>
    */
    Soapi.Routes.ErrorsByIdRouteMap = function(id, params)
    {
        /// <summary>
        /// Simulates an error given its code
        /// </summary>
        /// <param name='id' type='paramArray'>id of the error to simulate</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <returns type='Soapi.Routes.ErrorsByIdRouteMap'/>

        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.ErrorsByIdRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @returns {Soapi.Routes.ErrorsByIdRouteMap}
    */
    Soapi.Routes.ErrorsByIdRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array }</param>
        /// <returns type="Soapi.Routes.ErrorsByIdRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.ErrorsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.ErrorsByIdRouteMap}
    */
    Soapi.Routes.ErrorsByIdRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(ErrorsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(ErrorsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.ErrorsByIdRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.ErrorsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.ErrorsByIdRouteMap}
    */
    Soapi.Routes.ErrorsByIdRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(ErrorsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.ErrorsByIdRouteMap"/>
    };

    makeClass(Soapi.Routes.ErrorsByIdRouteMap, 'Soapi.Routes.ErrorsByIdRouteMap');
    /**
    * Creates a new ErrorsByIdRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=errors/{id}" target="_blank">/errors/{id}</a> to simulate an error given its code
    * @param {Number} id id of the error to simulate
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'    
    * @returns {Soapi.Routes.ErrorsByIdRouteMap}
    */
    Soapi.RouteFactory.prototype.ErrorsById = function(id, params)
    {
        /// <summary>
        /// Simulates an error given its code
        /// </summary>
        /// <param name='id' type='paramArray'>id of the error to simulate</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array }</param>
        /// <returns type='Soapi.Routes.ErrorsByIdRouteMap'/>
    };



    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + PostsByIdCommentsRouteMap : /posts/{id}/comments Gets the comments associated with a set of posts (questions and/or answers).
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#PostsByIdComments} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=posts/{id}/comments" target="_blank">/posts/{id}/comments</a> to get the comments associated with a set of posts (questions and/or answers).
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=posts/{id}/comments" target="_blank">/posts/{id}/comments</a>
    */
    Soapi.Routes.PostsByIdCommentsRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the comments associated with a set of posts (questions and/or answers).
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.CommentSort'>one of creation (default), votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.PostsByIdCommentsRouteMap'/>

        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = null;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = null;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = null;
        /**
        * one of creation, votes
        * @field
        * @type Soapi.Domain.CommentSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.PostsByIdCommentsRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.PostsByIdCommentsRouteMap}
    */
    Soapi.Routes.PostsByIdCommentsRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.PostsByIdCommentsRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.CommentsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.PostsByIdCommentsRouteMap}
    */
    Soapi.Routes.PostsByIdCommentsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(CommentsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.PostsByIdCommentsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.PostsByIdCommentsRouteMap}
    */
    Soapi.Routes.PostsByIdCommentsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.PostsByIdCommentsRouteMap"/>
    };


    makeClass(Soapi.Routes.PostsByIdCommentsRouteMap, 'Soapi.Routes.PostsByIdCommentsRouteMap');
    /**
    * Creates a new PostsByIdCommentsRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=posts/{id}/comments" target="_blank">/posts/{id}/comments</a> to get the comments associated with a set of posts (questions and/or answers).
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.PostsByIdCommentsRouteMap}
    */
    Soapi.RouteFactory.prototype.PostsByIdComments = function(id, params)
    {
        /// <summary>
        /// Gets the comments associated with a set of posts (questions and/or answers).
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.PostsByIdCommentsRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + QuestionsRouteMap : /questions Gets question summary information.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#Questions} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions" target="_blank">/questions</a> to get question summary information.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.QuestionSort} [params.sort="activity"] one of activity, votes, creation, featured, hot, week, month
    * @param {String} [params.tagged] List of tags questions must have
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=questions" target="_blank">/questions</a>
    */
    Soapi.Routes.QuestionsRouteMap = function(params)
    {
        /// <summary>
        /// Gets question summary information.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort String [activity|votes|creation|featured|hot|week|month], tagged: String, todate: Date }</param>
        /// <field name='answers' type='Boolean'>When "true", the answers to a question will be returned</field>
        /// <field name='body' type='Boolean'>When "true", a post's body will be included in the response.</field>
        /// <field name='comments' type='Boolean'>When "true", any comments on a post will be included in the response.</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.QuestionSort'>one of activity (default), votes, creation, featured, hot, week, month</field>
        /// <field name='tagged' type='String'>List of tags questions must have</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.QuestionsRouteMap'/>


        /**
        * When "true", the answers to a question will be returned
        * @field
        * @type Boolean
        */
        this.answers = null;
        /**
        * When "true", a post's body will be included in the response.
        * @field
        * @type Boolean
        */
        this.body = false;
        /**
        * When "true", any comments on a post will be included in the response.
        * @field
        * @type Boolean
        */
        this.comments = false;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of activity, votes, creation, featured, hot, week, month
        * @field
        * @type Soapi.Domain.QuestionSort
        */
        this.sort = null;
        /**
        * List of tags questions must have
        * @field
        * @type String
        */
        this.tagged = null;
        /**
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };


    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.QuestionsRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.QuestionSort} [params.sort="activity"] one of activity, votes, creation, featured, hot, week, month
    * @param {String} [params.tagged] List of tags questions must have
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.QuestionsRouteMap}
    */
    Soapi.Routes.QuestionsRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort String [activity|votes|creation|featured|hot|week|month], tagged: String, todate: Date }</param>
        /// <returns type="Soapi.Routes.QuestionsRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.QuestionsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsRouteMap}
    */
    Soapi.Routes.QuestionsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(QuestionsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsRouteMap}
    */
    Soapi.Routes.QuestionsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsRouteMap"/>
    };

    makeClass(Soapi.Routes.QuestionsRouteMap, 'Soapi.Routes.QuestionsRouteMap');
    /**
    * Creates a new QuestionsRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions" target="_blank">/questions</a> to get question summary information.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.QuestionSort} [params.sort="activity"] one of activity, votes, creation, featured, hot, week, month
    * @param {String} [params.tagged] List of tags questions must have
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.        
    * @returns {Soapi.Routes.QuestionsRouteMap}
    */
    Soapi.RouteFactory.prototype.Questions = function(params)
    {
        /// <summary>
        /// Gets question summary information.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort String [activity|votes|creation|featured|hot|week|month], tagged: String, todate: Date }</param>
        /// <returns type='Soapi.Routes.QuestionsRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + QuestionsByIdRouteMap : /questions/{id}  Gets the set questions identified in 'id' and their answers.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#QuestionsById} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}" target="_blank">/questions/{id}</a> to get the set questions identified in 'id' and their answers.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}" target="_blank">/questions/{id}</a>
    */
    Soapi.Routes.QuestionsByIdRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the set questions identified in 'id' and their answers.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='answers' type='Boolean'>When "true", the answers to a question will be returned</field>
        /// <field name='body' type='Boolean'>When "true", a post's body will be included in the response.</field>
        /// <field name='comments' type='Boolean'>When "true", any comments on a post will be included in the response.</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.PostSort'>one of activity (default), views, creation, votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.QuestionsByIdRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * When "true", the answers to a question will be returned
        * @field
        * @type Boolean
        */
        this.answers = null;
        /**
        * When "true", a post's body will be included in the response.
        * @field
        * @type Boolean
        */
        this.body = false;
        /**
        * When "true", any comments on a post will be included in the response.
        * @field
        * @type Boolean
        */
        this.comments = false;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of activity, views, creation, votes
        * @field
        * @type Soapi.Domain.PostSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;


    };


    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.QuestionsByIdRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.QuestionsByIdRouteMap}
    */
    Soapi.Routes.QuestionsByIdRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.QuestionsByIdRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.QuestionsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsByIdRouteMap}
    */
    Soapi.Routes.QuestionsByIdRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(QuestionsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsByIdRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsByIdRouteMap}
    */
    Soapi.Routes.QuestionsByIdRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsByIdRouteMap"/>
    };


    makeClass(Soapi.Routes.QuestionsByIdRouteMap, 'Soapi.Routes.QuestionsByIdRouteMap');
    /**
    * Creates a new QuestionsByIdRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}" target="_blank">/questions/{id}</a> to get the set questions identified in 'id' and their answers.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.QuestionsByIdRouteMap}
    */
    Soapi.RouteFactory.prototype.QuestionsById = function(id, params)
    {
        /// <summary>
        /// Gets the set questions identified in 'id' and their answers.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.QuestionsByIdRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + QuestionsByIdAnswersRouteMap : /questions/{id}/answers  Gets any answers to the question in 'id'.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#QuestionsByIdAnswers} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}/answers" target="_blank">/questions/{id}/answers</a> to get any answers to the question in 'id'.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}/answers" target="_blank">/questions/{id}/answers</a>
    */
    Soapi.Routes.QuestionsByIdAnswersRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets any answers to the question in 'id'.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='body' type='Boolean'>When "true", a post's body will be included in the response.</field>
        /// <field name='comments' type='Boolean'>When "true", any comments on a post will be included in the response.</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.PostSort'>one of activity (default), views, creation, votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.QuestionsByIdAnswersRouteMap'/>

        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * When "true", a post's body will be included in the response.
        * @field
        * @type Boolean
        */
        this.body = false;
        /**
        * When "true", any comments on a post will be included in the response.
        * @field
        * @type Boolean
        */
        this.comments = false;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of activity, views, creation, votes
        * @field
        * @type Soapi.Domain.PostSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.QuestionsByIdAnswersRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.QuestionsByIdAnswersRouteMap}
    */
    Soapi.Routes.QuestionsByIdAnswersRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.QuestionsByIdAnswersRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.AnswersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.AnswersResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsByIdAnswersRouteMap}
    */
    Soapi.Routes.QuestionsByIdAnswersRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(AnswersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(AnswersResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsByIdAnswersRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.AnswersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsByIdAnswersRouteMap}
    */
    Soapi.Routes.QuestionsByIdAnswersRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(AnswersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsByIdAnswersRouteMap"/>
    };


    makeClass(Soapi.Routes.QuestionsByIdAnswersRouteMap, 'Soapi.Routes.QuestionsByIdAnswersRouteMap');
    /**
    *
    * Creates a new QuestionsByIdAnswers to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}/answers" target="_blank">/questions/{id}/answers</a> to get any answers to the question in 'id'.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.QuestionsByIdAnswers}
    */
    Soapi.RouteFactory.prototype.QuestionsByIdAnswers = function(id, params)
    {
        /// <summary>
        /// Gets any answers to the question in 'id'.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.QuestionsByIdAnswersRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + QuestionsByIdCommentsRouteMap : /questions/{id}/comments Gets the comments associated with a set of questions.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#QuestionsByIdComments} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}/comments" target="_blank">/questions/{id}/comments</a> to get the comments associated with a set of questions.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}/comments" target="_blank">/questions/{id}/comments</a>
    */
    Soapi.Routes.QuestionsByIdCommentsRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the comments associated with a set of questions.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.CommentSort'>one of creation (default), votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.QuestionsByIdCommentsRouteMap'/>



        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of creation, votes
        * @field
        * @type Soapi.Domain.CommentSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };


    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.QuestionsByIdCommentsRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.QuestionsByIdCommentsRouteMap}
    */
    Soapi.Routes.QuestionsByIdCommentsRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.QuestionsByIdCommentsRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.CommentsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsByIdCommentsRouteMap}
    */
    Soapi.Routes.QuestionsByIdCommentsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(CommentsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsByIdCommentsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsByIdCommentsRouteMap}
    */
    Soapi.Routes.QuestionsByIdCommentsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsByIdCommentsRouteMap"/>
    };


    makeClass(Soapi.Routes.QuestionsByIdCommentsRouteMap, 'Soapi.Routes.QuestionsByIdCommentsRouteMap');
    /**
    *
    * Creates a new QuestionsByIdCommentsRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}/comments" target="_blank">/questions/{id}/comments</a> to get the comments associated with a set of questions.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.QuestionsByIdCommentsRouteMap}
    */
    Soapi.RouteFactory.prototype.QuestionsByIdComments = function(id, params)
    {
        /// <summary>
        /// Gets the comments associated with a set of questions.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.QuestionsByIdCommentsRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + QuestionsByIdTimelineRouteMap : /questions/{id}/timeline Gets the timeline of events for the questions in 'id'.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#QuestionsByIdTimeline} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}/timeline" target="_blank">/questions/{id}/timeline</a> to get the timeline of events for the questions in 'id'.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}/timeline" target="_blank">/questions/{id}/timeline</a>
    */
    Soapi.Routes.QuestionsByIdTimelineRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the timeline of events for the questions in 'id'.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.QuestionsByIdTimelineRouteMap'/>



        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;


    };


    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.QuestionsByIdTimelineRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.QuestionsByIdTimelineRouteMap}
    */
    Soapi.Routes.QuestionsByIdTimelineRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <returns type="Soapi.Routes.QuestionsByIdTimelineRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.PostTimelineResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.PostTimelineResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsByIdTimelineRouteMap}
    */
    Soapi.Routes.QuestionsByIdTimelineRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(PostTimelineResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(PostTimelineResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsByIdTimelineRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.PostTimelineResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsByIdTimelineRouteMap}
    */
    Soapi.Routes.QuestionsByIdTimelineRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(PostTimelineResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsByIdTimelineRouteMap"/>
    };


    makeClass(Soapi.Routes.QuestionsByIdTimelineRouteMap, 'Soapi.Routes.QuestionsByIdTimelineRouteMap');
    /**
    *
    * Creates a new QuestionsByIdTimelineRouteMap to provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/{id}/timeline" target="_blank">/questions/{id}/timeline</a> to get the timeline of events for the questions in 'id'.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.QuestionsByIdTimelineRouteMap}
    */
    Soapi.RouteFactory.prototype.QuestionsByIdTimeline = function(id, params)
    {
        /// <summary>
        /// Gets the timeline of events for the questions in 'id'.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <returns type='Soapi.Routes.QuestionsByIdTimelineRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + QuestionsUnansweredRouteMap : /questions/unanswered  Gets questions that have no upvoted answers.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#QuestionsUnanswered} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/unanswered" target="_blank">/questions/unanswered</a> to get questions that have no upvoted answers.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {String} [params.tagged] List of tags questions must have
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/unanswered" target="_blank">/questions/unanswered</a>
    */
    Soapi.Routes.QuestionsUnansweredRouteMap = function(params)
    {
        /// <summary>
        /// Gets questions that have no upvoted answers.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], tagged: String, todate: Date }</param>
        /// <field name='answers' type='Boolean'>When "true", the answers to a question will be returned</field>
        /// <field name='body' type='Boolean'>When "true", a post's body will be included in the response.</field>
        /// <field name='comments' type='Boolean'>When "true", any comments on a post will be included in the response.</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.CommentSort'>one of creation (default), votes</field>
        /// <field name='tagged' type='String'>List of tags questions must have</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.QuestionsUnansweredRouteMap'/>



        /**
        * When "true", the answers to a question will be returned
        * @field
        * @type Boolean
        */
        this.answers = null;
        /**
        * When "true", a post's body will be included in the response.
        * @field
        * @type Boolean
        */
        this.body = false;
        /**
        * When "true", any comments on a post will be included in the response.
        * @field
        * @type Boolean
        */
        this.comments = false;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of creation, votes
        * @field
        * @type Soapi.Domain.CommentSort
        */
        this.sort = null;
        /**
        * List of tags questions must have
        * @field
        * @type String
        */
        this.tagged = null;
        /**
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.QuestionsUnansweredRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {String} [params.tagged] List of tags questions must have
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.QuestionsUnansweredRouteMap}
    */
    Soapi.Routes.QuestionsUnansweredRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], tagged: String, todate: Date }</param>
        /// <returns type="Soapi.Routes.QuestionsUnansweredRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.QuestionsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsUnansweredRouteMap}
    */
    Soapi.Routes.QuestionsUnansweredRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(QuestionsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsUnansweredRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.QuestionsUnansweredRouteMap}
    */
    Soapi.Routes.QuestionsUnansweredRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.QuestionsUnansweredRouteMap"/>
    };


    makeClass(Soapi.Routes.QuestionsUnansweredRouteMap, 'Soapi.Routes.QuestionsUnansweredRouteMap');
    /**
    *
    * Creates a new QuestionsUnansweredRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=questions/unanswered" target="_blank">/questions/unanswered</a> to get questions that have no upvoted answers.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {String} [params.tagged] List of tags questions must have
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.        
    * @returns {Soapi.Routes.QuestionsUnansweredRouteMap}
    */
    Soapi.RouteFactory.prototype.QuestionsUnanswered = function(params)
    {
        /// <summary>
        /// Gets questions that have no upvoted answers.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], tagged: String, todate: Date }</param>
        /// <returns type='Soapi.Routes.QuestionsUnansweredRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + RevisionsByIdRouteMap : /revisions/{id}  Gets the post history revisions for a set of posts in 'id'.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#RevisionsById} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=revisions/{id}" target="_blank">/revisions/{id}</a> to get the post history revisions for a set of posts in 'id'.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] start date to list revisions from
    * @param {Date} [params.todate] date to stop listing revisions at    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=revisions/{id}" target="_blank">/revisions/{id}</a>
    */
    Soapi.Routes.RevisionsByIdRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the post history revisions for a set of posts in 'id'.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>start date to list revisions from</field>
        /// <field name='todate' type='Date'>date to stop listing revisions at</field>
        /// <returns type='Soapi.Routes.RevisionsByIdRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * start date to list revisions from
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * date to stop listing revisions at
        * @field
        * @type Date
        */
        this.todate = null;


    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.RevisionsByIdRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] start date to list revisions from
    * @param {Date} [params.todate] date to stop listing revisions at
    * @returns {Soapi.Routes.RevisionsByIdRouteMap}
    */
    Soapi.Routes.RevisionsByIdRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, todate: Date }</param>
        /// <returns type="Soapi.Routes.RevisionsByIdRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.RevisionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.RevisionsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.RevisionsByIdRouteMap}
    */
    Soapi.Routes.RevisionsByIdRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(RevisionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(RevisionsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.RevisionsByIdRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.RevisionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.RevisionsByIdRouteMap}
    */
    Soapi.Routes.RevisionsByIdRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(RevisionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.RevisionsByIdRouteMap"/>
    };


    makeClass(Soapi.Routes.RevisionsByIdRouteMap, 'Soapi.Routes.RevisionsByIdRouteMap');
    /**
    *
    * Creates a new RevisionsByIdRouteMap to provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=revisions/{id}" target="_blank">/revisions/{id}</a> to get the post history revisions for a set of posts in 'id'.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {String} [params.tagged] List of tags questions must have
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.        
    * @returns {Soapi.Routes.RevisionsByIdRouteMap}
    */
    Soapi.RouteFactory.prototype.RevisionsById = function(id, params)
    {
        /// <summary>
        /// Gets the post history revisions for a set of posts in 'id'.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, todate: Date }</param>
        /// <returns type='Soapi.Routes.RevisionsByIdRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + RevisionsByIdByRevisionGuidRouteMap : /revisions/{id}/{revisionguid} Get a specific post revision.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#RevisionsByIdByRevisionGuid} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=revisions/{id}/{revisionguid}" target="_blank">/revisions/{id}/{revisionguid}</a> to get a specific post revision.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {String} [params.revisionguid] specific revision id
    * @param {String} [params.revisionguid] specific revision id
    * @param {Date} [params.fromdate] start date to list revisions from
    * @param {Date} [params.todate] date to stop listing revisions at    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=revisions/{id}/{revisionguid}" target="_blank">/revisions/{id}/{revisionguid}</a>
    */
    Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap = function(id, params)
    {
        /// <summary>
        /// Get a specific post revision. 
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, revisionguid: String, fromdate: Date, todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='revisionguid' type='String'>specific revision id</field>
        /// <field name='fromdate' type='Date'>start date to list revisions from</field>
        /// <field name='todate' type='Date'>date to stop listing revisions at</field>
        /// <returns type='Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap'/>

        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * specific revision id
        * @field
        * @type String
        */
        this.revisionguid = null;
        /**
        * start date to list revisions from
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * date to stop listing revisions at
        * @field
        * @type Date
        */
        this.todate = null;


    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {String} [params.revisionguid] specific revision id
    * @param {String} [params.revisionguid] specific revision id
    * @param {Date} [params.fromdate] start date to list revisions from
    * @param {Date} [params.todate] date to stop listing revisions at
    * @returns {Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap}
    */
    Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, revisionguid: String, fromdate: Date, todate: Date }</param>
        /// <returns type="Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.RevisionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.RevisionsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap}
    */
    Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(RevisionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(RevisionsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.RevisionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap}
    */
    Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(RevisionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap"/>
    };


    makeClass(Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap, 'Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap');
    /**
    *
    * Creates a new RevisionsByIdByRevisionGuidRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=revisions/{id}/{revisionguid}" target="_blank">/revisions/{id}/{revisionguid}</a> to get a specific post revision.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {String} [params.revisionguid] specific revision id
    * @param {String} [params.revisionguid] specific revision id
    * @param {Date} [params.fromdate] start date to list revisions from
    * @param {Date} [params.todate] date to stop listing revisions at    
    * @returns {Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap}
    */
    Soapi.RouteFactory.prototype.RevisionsByIdByRevisionGuid = function(id, params)
    {
        /// <summary>
        /// Get a specific post revision.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, revisionguid: String, fromdate: Date, todate: Date }</param>
        /// <returns type='Soapi.Routes.RevisionsByIdByRevisionGuidRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + SearchRouteMap : /search  Searches questions. One of intitle, tagged, or nottagged must be set. Searches that are purely text based should be routed through a third-party search engine, for performance reasons.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#Search} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=search" target="_blank">/search</a> to search questions. One of intitle, tagged, or nottagged must be set. Searches that are purely text based should be routed through a third-party search engine, for performance reasons.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String} [params.intitle] A string that must appear verbatim in the title of a question
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {String} [params.nottagged] List of tags delimited by semi-colons that must not be on a question
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {String} [params.tagged] List of tags delimited by semi-colons of which at least one must be on a question    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=search" target="_blank">/search</a>
    */
    Soapi.Routes.SearchRouteMap = function(params)
    {
        /// <summary>
        /// Searches questions.  One of intitle, tagged, or nottagged must be set.
        ///
        ///             Searches that are purely text based should be routed through a third-party search engine,
        ///             for performance reasons.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { intitle: String, max: Object, min: Object, nottagged: String, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], tagged: String }</param>
        /// <field name='intitle' type='String'>A string that must appear verbatim in the title of a question</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='nottagged' type='String'>List of tags delimited by semi-colons that must not be on a question</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.PostSort'>one of activity (default), views, creation, votes</field>
        /// <field name='tagged' type='String'>List of tags delimited by semi-colons of which at least one must be on a question</field>
        /// <returns type='Soapi.Routes.SearchRouteMap'/>

        /**
        * A string that must appear verbatim in the title of a question
        * @field
        * @type String
        */
        this.intitle = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * List of tags delimited by semi-colons that must not be on a question
        * @field
        * @type String
        */
        this.nottagged = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of activity, views, creation, votes
        * @field
        * @type Soapi.Domain.PostSort
        */
        this.sort = null;
        /**
        * List of tags delimited by semi-colons of which at least one must be on a question
        * @field
        * @type String
        */
        this.tagged = null;
    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.SearchRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String} [params.intitle] A string that must appear verbatim in the title of a question
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {String} [params.nottagged] List of tags delimited by semi-colons that must not be on a question
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {String} [params.tagged] List of tags delimited by semi-colons of which at least one must be on a question
    * @returns {Soapi.Routes.SearchRouteMap}
    */
    Soapi.Routes.SearchRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ intitle: String, max: Object, min: Object, nottagged: String, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], tagged: String }</param>
        /// <returns type="Soapi.Routes.SearchRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.QuestionsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.SearchRouteMap}
    */
    Soapi.Routes.SearchRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(QuestionsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.SearchRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.SearchRouteMap}
    */
    Soapi.Routes.SearchRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.SearchRouteMap"/>
    };



    makeClass(Soapi.Routes.SearchRouteMap, 'Soapi.Routes.SearchRouteMap');
    /**
    *
    * Creates a new SearchRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=search" target="_blank">/search</a> to search questions. One of intitle, tagged, or nottagged must be set. Searches that are purely text based should be routed through a third-party search engine, for performance reasons.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String} [params.intitle] A string that must appear verbatim in the title of a question
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {String} [params.nottagged] List of tags delimited by semi-colons that must not be on a question
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {String} [params.tagged] List of tags delimited by semi-colons of which at least one must be on a question        
    * @returns {Soapi.Routes.SearchRouteMap}
    */
    Soapi.RouteFactory.prototype.Search = function(params)
    {
        /// <summary>
        /// Searches questions.  One of intitle, tagged, or nottagged must be set.
        ///
        ///             Searches that are purely text based should be routed through a third-party search engine,
        ///             for performance reasons.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { intitle: String, max: Object, min: Object, nottagged: String, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], tagged: String }</param>
        /// <returns type='Soapi.Routes.SearchRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + StatsRouteMap : /stats Gets various system statistics.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#Stats} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=stats" target="_blank">/stats</a> to get various system statistics.
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=stats" target="_blank">/stats</a>
    */
    Soapi.Routes.StatsRouteMap = function()
    {
        /// <summary>
        /// Gets various system statistics.
        /// </summary>
        /// <returns type='Soapi.Routes.StatsRouteMap'/>


    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.StatsRouteMap.routeFormat = null;


    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.StatsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.StatsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.StatsRouteMap}
    */
    Soapi.Routes.StatsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(StatsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(StatsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.StatsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.StatsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.StatsRouteMap}
    */
    Soapi.Routes.StatsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(StatsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.StatsRouteMap"/>
    };


    makeClass(Soapi.Routes.StatsRouteMap, 'Soapi.Routes.StatsRouteMap');
    /**
    *
    * Creates a new StatsRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=stats" target="_blank">/stats</a> to get various system statistics.
    * @returns {Soapi.Routes.StatsRouteMap}
    */
    Soapi.RouteFactory.prototype.Stats = function()
    {
        /// <summary>
        /// Gets various system statistics.
        /// </summary>
        /// <returns type='Soapi.Routes.StatsRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + TagsRouteMap : /tags  Gets the tags on all questions, along with their usage counts.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#Tags} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=tags" target="_blank">/tags</a> to get the tags on all questions, along with their usage counts.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String} [params.filter] Required text in returned tags
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.TagSort} [params.sort="popular"] one of popular, activity, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=tags" target="_blank">/tags</a>
    */
    Soapi.Routes.TagsRouteMap = function(params)
    {
        /// <summary>
        /// Gets the tags on all questions, along with their usage counts.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [popular|activity|name], todate: Date }</param>
        /// <field name='filter' type='String'>Required text in returned tags</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.TagSort'>one of popular (default), activity, name</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.TagsRouteMap'/>


        /**
        * Required text in returned tags
        * @field
        * @type String
        */
        this.filter = null;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of popular, activity, name
        * @field
        * @type Soapi.Domain.TagSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };


    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.TagsRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String} [params.filter] Required text in returned tags
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.TagSort} [params.sort="popular"] one of popular, activity, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.TagsRouteMap}
    */
    Soapi.Routes.TagsRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [popular|activity|name], todate: Date }</param>
        /// <returns type="Soapi.Routes.TagsRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.TagsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.TagsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.TagsRouteMap}
    */
    Soapi.Routes.TagsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(TagsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(TagsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.TagsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.TagsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.TagsRouteMap}
    */
    Soapi.Routes.TagsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(TagsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.TagsRouteMap"/>
    };


    makeClass(Soapi.Routes.TagsRouteMap, 'Soapi.Routes.TagsRouteMap');
    /**
    *
    * Creates a new TagsRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=tags" target="_blank">/tags</a> to get the tags on all questions, along with their usage counts.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String} [params.filter] Required text in returned tags
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.TagSort} [params.sort="popular"] one of popular, activity, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.        
    * @returns {Soapi.Routes.TagsRouteMap}
    */
    Soapi.RouteFactory.prototype.Tags = function(params)
    {
        /// <summary>
        /// Gets the tags on all questions, along with their usage counts.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [popular|activity|name], todate: Date }</param>
        /// <returns type='Soapi.Routes.TagsRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersRouteMap : /users Gets user summary information.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#Users} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users" target="_blank">/users</a> to get user summary information.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String} [params.filter] String that must appear in returned users' names
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.UserSort} [params.sort="reputation"] one of reputation, creation, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users" target="_blank">/users</a>
    */
    Soapi.Routes.UsersRouteMap = function(params)
    {
        /// <summary>
        /// Gets user summary information.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [reputation|creation|name], todate: Date }</param>
        /// <field name='filter' type='String'>String that must appear in returned users' names</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.UserSort'>one of reputation (default), creation, name</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersRouteMap'/>


        /**
        * String String that must appear in returned users' names
        * @field
        * @type String
        */
        this.filter = null;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of reputation, creation, name
        * @field
        * @type Soapi.Domain.UserSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;


    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String} [params.filter] String that must appear in returned users' names
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.UserSort} [params.sort="reputation"] one of reputation, creation, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersRouteMap}
    */
    Soapi.Routes.UsersRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [reputation|creation|name], todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.UsersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.UsersResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersRouteMap}
    */
    Soapi.Routes.UsersRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(UsersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(UsersResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.UsersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersRouteMap}
    */
    Soapi.Routes.UsersRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(UsersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersRouteMap, 'Soapi.Routes.UsersRouteMap');
    /**
    *
    * Creates a new UsersRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users" target="_blank">/users</a> to get user summary information.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String} [params.filter] String that must appear in returned users' names
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.UserSort} [params.sort="reputation"] one of reputation, creation, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.        
    * @returns {Soapi.Routes.UsersRouteMap}
    */
    Soapi.RouteFactory.prototype.Users = function(params)
    {
        /// <summary>
        /// Gets user summary information.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [reputation|creation|name], todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdRouteMap : /users/{id}  Gets summary information for a set of users.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersById} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}" target="_blank">/users/{id}</a> to get summary information for a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.UserSort} [params.sort="reputation"] one of reputation, creation, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}" target="_blank">/users/{id}</a>
    */
    Soapi.Routes.UsersByIdRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets summary information for a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [reputation|creation|name], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.UserSort'>one of reputation (default), creation, name</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersByIdRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of reputation, creation, name
        * @field
        * @type Soapi.Domain.UserSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.UserSort} [params.sort="reputation"] one of reputation, creation, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersByIdRouteMap}
    */
    Soapi.Routes.UsersByIdRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [reputation|creation|name], todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersByIdRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.UsersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.UsersResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdRouteMap}
    */
    Soapi.Routes.UsersByIdRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(UsersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(UsersResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.UsersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdRouteMap}
    */
    Soapi.Routes.UsersByIdRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(UsersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersByIdRouteMap, 'Soapi.Routes.UsersByIdRouteMap');
    /**
    *
    * Creates a new UsersByIdRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}" target="_blank">/users/{id}</a> to get summary information for a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.UserSort} [params.sort="reputation"] one of reputation, creation, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.UsersByIdRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersById = function(id, params)
    {
        /// <summary>
        /// Gets summary information for a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [reputation|creation|name], todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersByIdRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdAnswersRouteMap : /users/{id}/answers  Gets answer summary information for a set of users.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdAnswers} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/answers" target="_blank">/users/{id}/answers</a> to get answer summary information for a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/answers" target="_blank">/users/{id}/answers</a>
    */
    Soapi.Routes.UsersByIdAnswersRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets answer summary information for a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date  }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='body' type='Boolean'>When "true", a post's body will be included in the response.</field>
        /// <field name='comments' type='Boolean'>When "true", any comments on a post will be included in the response.</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.PostSort'>one of activity (default), views, creation, votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersByIdAnswersRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * When "true", a post's body will be included in the response.
        * @field
        * @type Boolean
        */
        this.body = false;
        /**
        * When "true", any comments on a post will be included in the response.
        * @field
        * @type Boolean
        */
        this.comments = false;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of activity, views, creation, votes
        * @field
        * @type Soapi.Domain.PostSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdAnswersRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersByIdAnswersRouteMap}
    */
    Soapi.Routes.UsersByIdAnswersRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date  }</param>
        /// <returns type="Soapi.Routes.UsersByIdAnswersRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.AnswersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.AnswersResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdAnswersRouteMap}
    */
    Soapi.Routes.UsersByIdAnswersRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(AnswersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(AnswersResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdAnswersRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.AnswersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdAnswersRouteMap}
    */
    Soapi.Routes.UsersByIdAnswersRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(AnswersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdAnswersRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersByIdAnswersRouteMap, 'Soapi.Routes.UsersByIdAnswersRouteMap');
    /**
    *
    * Creates a new UsersByIdAnswersRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/answers" target="_blank">/users/{id}/answers</a> to get answer summary information for a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.UsersByIdAnswersRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersByIdAnswers = function(id, params)
    {
        /// <summary>
        /// Gets answer summary information for a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date  }</param>
        /// <returns type='Soapi.Routes.UsersByIdAnswersRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdBadgesRouteMap : /users/{id}/badges Gets the badges that have been awarded to a set of users.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdBadges} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/badges" target="_blank">/users/{id}/badges</a> to get the badges that have been awarded to a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/badges" target="_blank">/users/{id}/badges</a>
    */
    Soapi.Routes.UsersByIdBadgesRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the badges that have been awarded to a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <returns type='Soapi.Routes.UsersByIdBadgesRouteMap'/>



        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";


    };


    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdBadgesRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @returns {Soapi.Routes.UsersByIdBadgesRouteMap}
    */
    Soapi.Routes.UsersByIdBadgesRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array }</param>
        /// <returns type="Soapi.Routes.UsersByIdBadgesRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.BadgesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.BadgesResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdBadgesRouteMap}
    */
    Soapi.Routes.UsersByIdBadgesRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(BadgesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(BadgesResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdBadgesRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.BadgesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdBadgesRouteMap}
    */
    Soapi.Routes.UsersByIdBadgesRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(BadgesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdBadgesRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersByIdBadgesRouteMap, 'Soapi.Routes.UsersByIdBadgesRouteMap');
    /**
    *
    * Creates a new UsersByIdBadgesRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/badges" target="_blank">/users/{id}/badges</a> to get the badges that have been awarded to a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'    
    * @returns {Soapi.Routes.UsersByIdBadgesRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersByIdBadges = function(id, params)
    {
        /// <summary>
        /// Gets the badges that have been awarded to a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array }</param>
        /// <returns type='Soapi.Routes.UsersByIdBadgesRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdCommentsRouteMap : /users/{id}/comments Gets the comments that a set of users have made.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdComments} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/comments" target="_blank">/users/{id}/comments</a> to get the comments that a set of users have made.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/comments" target="_blank">/users/{id}/comments</a>
    */
    Soapi.Routes.UsersByIdCommentsRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the comments that a set of users have made.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.CommentSort'>one of creation (default), votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersByIdCommentsRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of creation, votes
        * @field
        * @type Soapi.Domain.CommentSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;


    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdCommentsRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersByIdCommentsRouteMap}
    */
    Soapi.Routes.UsersByIdCommentsRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersByIdCommentsRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.CommentsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdCommentsRouteMap}
    */
    Soapi.Routes.UsersByIdCommentsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(CommentsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdCommentsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdCommentsRouteMap}
    */
    Soapi.Routes.UsersByIdCommentsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdCommentsRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersByIdCommentsRouteMap, 'Soapi.Routes.UsersByIdCommentsRouteMap');
    /**
    *
    * Creates a new UsersByIdCommentsRouteMap to provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/comments" target="_blank">/users/{id}/comments</a> to get the comments that a set of users have made.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.UsersByIdCommentsRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersByIdComments = function(id, params)
    {
        /// <summary>
        /// Gets the comments that a set of users have made.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersByIdCommentsRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdCommentsByToIdRouteMap : /users/{id}/comments/{toid}  Gets the comments by a set of users that mention the user with 'toid'.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdCommentsByToId} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/comments/{toid}" target="_blank">/users/{id}/comments/{toid}</a> to get the comments by a set of users that mention the user with 'toid'.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Number} [params.toid] id of the user referred to
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/comments/{toid}" target="_blank">/users/{id}/comments/{toid}</a>
    */
    Soapi.Routes.UsersByIdCommentsByToIdRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the comments by a set of users that mention the user with 'toid'.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, toid: Number, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='toid' type='Number'>id of the user referred to</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.CommentSort'>one of creation (default), votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersByIdCommentsByToIdRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * id of the user referred to
        * @field
        * @type Number
        */
        this.toid = null;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of creation, votes
        * @field
        * @type Soapi.Domain.CommentSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdCommentsByToIdRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Number} [params.toid] id of the user referred to
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersByIdCommentsByToIdRouteMap}
    */
    Soapi.Routes.UsersByIdCommentsByToIdRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, toid: Number, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersByIdCommentsByToIdRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.CommentsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdCommentsByToIdRouteMap}
    */
    Soapi.Routes.UsersByIdCommentsByToIdRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(CommentsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdCommentsByToIdRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdCommentsByToIdRouteMap}
    */
    Soapi.Routes.UsersByIdCommentsByToIdRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdCommentsByToIdRouteMap"/>
    };

    makeClass(Soapi.Routes.UsersByIdCommentsByToIdRouteMap, 'Soapi.Routes.UsersByIdCommentsByToIdRouteMap');
    /**
    *
    * Creates a new UsersByIdCommentsByToIdRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/comments/{toid}" target="_blank">/users/{id}/comments/{toid}</a> to get the comments by a set of users that mention the user with 'toid'.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Number} [params.toid] id of the user referred to
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.UsersByIdCommentsByToIdRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersByIdCommentsByToId = function(id, params)
    {
        /// <summary>
        /// Gets the comments by a set of users that mention the user with 'toid'.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, toid: Number, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersByIdCommentsByToIdRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdFavoritesRouteMap : /users/{id}/favorites  Gets summary information for the questions that have been favorited by a set of users.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdFavorites} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/favorites" target="_blank">/users/{id}/favorites</a> to get summary information for the questions that have been favorited by a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.FavoritesSort} [params.sort="activity"] one of activity, views, creation, added, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/favorites" target="_blank">/users/{id}/favorites</a>
    */
    Soapi.Routes.UsersByIdFavoritesRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets summary information for the questions that have been favorited by a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [activity|views|creation|added|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='answers' type='Boolean'>When "true", the answers to a question will be returned</field>
        /// <field name='body' type='Boolean'>When "true", a post's body will be included in the response.</field>
        /// <field name='comments' type='Boolean'>When "true", any comments on a post will be included in the response.</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.FavoritesSort'>one of activity (default), views, creation, added, votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersByIdFavoritesRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * When "true", the answers to a question will be returned
        * @field
        * @type Boolean
        */
        this.answers = null;
        /**
        * When "true", a post's body will be included in the response.
        * @field
        * @type Boolean
        */
        this.body = false;
        /**
        * When "true", any comments on a post will be included in the response.
        * @field
        * @type Boolean
        */
        this.comments = false;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of activity, views, creation, added, votes
        * @field
        * @type Soapi.Domain.FavoritesSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdFavoritesRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.FavoritesSort} [params.sort="activity"] one of activity, views, creation, added, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersByIdFavoritesRouteMap}
    */
    Soapi.Routes.UsersByIdFavoritesRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [activity|views|creation|added|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersByIdFavoritesRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.QuestionsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdFavoritesRouteMap}
    */
    Soapi.Routes.UsersByIdFavoritesRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(QuestionsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdFavoritesRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdFavoritesRouteMap}
    */
    Soapi.Routes.UsersByIdFavoritesRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdFavoritesRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersByIdFavoritesRouteMap, 'Soapi.Routes.UsersByIdFavoritesRouteMap');
    /**
    *
    * Creates a new UsersByIdFavoritesRouteMap provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/favorites" target="_blank">/users/{id}/favorites</a> to get summary information for the questions that have been favorited by a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.FavoritesSort} [params.sort="activity"] one of activity, views, creation, added, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.UsersByIdFavoritesRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersByIdFavorites = function(id, params)
    {
        /// <summary>
        /// Gets summary information for the questions that have been favorited by a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [activity|views|creation|added|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersByIdFavoritesRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdMentionedRouteMap : /users/{id}/mentioned  Gets comments that are directed at a set of users.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdMentioned} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/mentioned" target="_blank">/users/{id}/mentioned</a> to get comments that are directed at a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/mentioned" target="_blank">/users/{id}/mentioned</a>
    */
    Soapi.Routes.UsersByIdMentionedRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets comments that are directed at a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.CommentSort'>one of creation (default), votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersByIdMentionedRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of creation, votes
        * @field
        * @type Soapi.Domain.CommentSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;


    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdMentionedRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersByIdMentionedRouteMap}
    */
    Soapi.Routes.UsersByIdMentionedRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersByIdMentionedRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.CommentsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdMentionedRouteMap}
    */
    Soapi.Routes.UsersByIdMentionedRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(CommentsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdMentionedRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.CommentsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdMentionedRouteMap}
    */
    Soapi.Routes.UsersByIdMentionedRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(CommentsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdMentionedRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersByIdMentionedRouteMap, 'Soapi.Routes.UsersByIdMentionedRouteMap');
    /**
    *
    * Creates a new UsersByIdMentionedRouteMap to provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/mentioned" target="_blank">/users/{id}/mentioned</a> to get comments that are directed at a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.CommentSort} [params.sort="creation"] one of creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.UsersByIdMentionedRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersByIdMentioned = function(id, params)
    {
        /// <summary>
        /// Gets comments that are directed at a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional) An object map of parameters to apply to this route.  { id: String|Array, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [creation|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersByIdMentionedRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdQuestionsRouteMap : /users/{id}/questions  Gets question summary information for a set of users.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdQuestions} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/questions" target="_blank">/users/{id}/questions</a> to get question summary information for a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/questions" target="_blank">/users/{id}/questions</a>
    */
    Soapi.Routes.UsersByIdQuestionsRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets question summary information for a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='answers' type='Boolean'>When "true", the answers to a question will be returned</field>
        /// <field name='body' type='Boolean'>When "true", a post's body will be included in the response.</field>
        /// <field name='comments' type='Boolean'>When "true", any comments on a post will be included in the response.</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.PostSort'>one of activity (default), views, creation, votes</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersByIdQuestionsRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * When "true", the answers to a question will be returned
        * @field
        * @type Boolean
        */
        this.answers = null;
        /**
        * When "true", a post's body will be included in the response.
        * @field
        * @type Boolean
        */
        this.body = false;
        /**
        * When "true", any comments on a post will be included in the response.
        * @field
        * @type Boolean
        */
        this.comments = false;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of activity, views, creation, votes
        * @field
        * @type Soapi.Domain.PostSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdQuestionsRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersByIdQuestionsRouteMap}
    */
    Soapi.Routes.UsersByIdQuestionsRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersByIdQuestionsRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.QuestionsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdQuestionsRouteMap}
    */
    Soapi.Routes.UsersByIdQuestionsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(QuestionsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdQuestionsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.QuestionsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdQuestionsRouteMap}
    */
    Soapi.Routes.UsersByIdQuestionsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(QuestionsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdQuestionsRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersByIdQuestionsRouteMap, 'Soapi.Routes.UsersByIdQuestionsRouteMap');
    /**
    *
    * Creates a new UsersByIdQuestionsRouteMap to provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/questions" target="_blank">/users/{id}/questions</a> to get question summary information for a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Boolean} [params.answers] When "true", the answers to a question will be returned
    * @param {Boolean} [params.body] When "true", a post's body will be included in the response.
    * @param {Boolean} [params.comments] When "true", any comments on a post will be included in the response.
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.PostSort} [params.sort="activity"] one of activity, views, creation, votes
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.UsersByIdQuestionsRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersByIdQuestions = function(id, params)
    {
        /// <summary>
        /// Gets question summary information for a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, answers: Boolean, body: Boolean, comments: Boolean, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [activity|views|creation|votes], todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersByIdQuestionsRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdReputationRouteMap : /users/{id}/reputation Gets information on reputation changes for a set of users.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdReputation} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/reputation" target="_blank">/users/{id}/reputation</a> to get information on reputation changes for a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/reputation" target="_blank">/users/{id}/reputation</a>
    */
    Soapi.Routes.UsersByIdReputationRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets information on reputation changes for a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersByIdReputationRouteMap'/>

        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;


    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdReputationRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersByIdReputationRouteMap}
    */
    Soapi.Routes.UsersByIdReputationRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersByIdReputationRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.RepChangesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.RepChangesResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdReputationRouteMap}
    */
    Soapi.Routes.UsersByIdReputationRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(RepChangesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(RepChangesResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdReputationRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.RepChangesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdReputationRouteMap}
    */
    Soapi.Routes.UsersByIdReputationRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(RepChangesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdReputationRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersByIdReputationRouteMap, 'Soapi.Routes.UsersByIdReputationRouteMap');
    /**
    *
    * Creates a new UsersByIdReputationRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/reputation" target="_blank">/users/{id}/reputation</a> to get information on reputation changes for a set of users.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.UsersByIdReputationRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersByIdReputation = function(id, params)
    {
        /// <summary>
        /// Gets information on reputation changes for a set of users.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersByIdReputationRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdTagsRouteMap : /users/{id}/tags Gets the tags that a set of users has participated in.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdTags} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/tags" target="_blank">/users/{id}/tags</a> to get the tags that a set of users has participated in.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {String} [params.filter] Required text in returned tags
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.TagSort} [params.sort="popular"] one of popular, activity, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/tags" target="_blank">/users/{id}/tags</a>
    */
    Soapi.Routes.UsersByIdTagsRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets the tags that a set of users has participated in.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [popular|activity|name], todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='filter' type='String'>Required text in returned tags</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the response according to the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the response according to the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.TagSort'>one of popular (default), activity, name</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersByIdTagsRouteMap'/>


        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * Required text in returned tags
        * @field
        * @type String
        */
        this.filter = null;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the response according to the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of popular, activity, name
        * @field
        * @type Soapi.Domain.TagSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdTagsRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {String} [params.filter] Required text in returned tags
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.TagSort} [params.sort="popular"] one of popular, activity, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersByIdTagsRouteMap}
    */
    Soapi.Routes.UsersByIdTagsRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [popular|activity|name], todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersByIdTagsRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.TagsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.TagsResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdTagsRouteMap}
    */
    Soapi.Routes.UsersByIdTagsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(TagsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(TagsResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdTagsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.TagsResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdTagsRouteMap}
    */
    Soapi.Routes.UsersByIdTagsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(TagsResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdTagsRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersByIdTagsRouteMap, 'Soapi.Routes.UsersByIdTagsRouteMap');
    /**
    *
    * Creates a new UsersByIdTagsRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/tags" target="_blank">/users/{id}/tags</a> to get the tags that a set of users has participated in.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {String} [params.filter] Required text in returned tags
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the response according to the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the response according to the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.TagSort} [params.sort="popular"] one of popular, activity, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.}
    */
    Soapi.RouteFactory.prototype.UsersByIdTags = function(id, params)
    {
        /// <summary>
        /// Gets the tags that a set of users has participated in.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: String [popular|activity|name], todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersByIdTagsRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersByIdTimelineRouteMap : /users/{id}/timeline Gets actions a set of users have performed.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersByIdTimeline} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/timeline" target="_blank">/users/{id}/timeline</a> to gets actions a set of users have performed.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/timeline" target="_blank">/users/{id}/timeline</a>
    */
    Soapi.Routes.UsersByIdTimelineRouteMap = function(id, params)
    {
        /// <summary>
        /// Gets actions a set of users have performed.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <field name='id' type='String|Array'>one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersByIdTimelineRouteMap'/>

        /**
        * one or more unique identifiers as a semi-colon delimited list. e.g. '1;2;3'
        * @field
        * @type String
        */
        this.id = "";
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;

    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersByIdTimelineRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersByIdTimelineRouteMap}
    */
    Soapi.Routes.UsersByIdTimelineRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersByIdTimelineRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.UserTimelinesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.UserTimelinesResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdTimelineRouteMap}
    */
    Soapi.Routes.UsersByIdTimelineRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(UserTimelinesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(UserTimelinesResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdTimelineRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.UserTimelinesResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersByIdTimelineRouteMap}
    */
    Soapi.Routes.UsersByIdTimelineRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(UserTimelinesResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersByIdTimelineRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersByIdTimelineRouteMap, 'Soapi.Routes.UsersByIdTimelineRouteMap');
    /**
    * Creates a new UsersByIdTimelineRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/{id}/timeline" target="_blank">/users/{id}/timeline</a> to gets actions a set of users have performed.
    * @param {Number|String|Array} id One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String|Array} [params.id] one or more unique identifiers as an Array or a semi-colon delimited string. e.g. '1;2;3'
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @returns {Soapi.Routes.UsersByIdTimelineRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersByIdTimeline = function(id, params)
    {
        /// <summary>
        /// Gets actions a set of users have performed.
        /// </summary>
        /// <param name='id' type='Number|String|Array'>One or more id values as an Array e.g. [1,2] or parameter array. e.g. 1, 2, ....</param>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { id: String|Array, fromdate: Date, page: Number, pagesize: Number, todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersByIdTimelineRouteMap'/>
    };




    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // + UsersModeratorsRouteMap : /users/moderators  Gets all the moderators on this site.
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    /**
    * Created by {@link Soapi.RouteFactory#UsersModerators} factory method. This class is not designed to be instantiated by user code.
    * @class Provides access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/moderators" target="_blank">/users/moderators</a> to get all the moderators on this site.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String} [params.filter] String that must appear in returned users' names
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.UserSort} [params.sort="reputation"] one of reputation, creation, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.    
    * @augments Soapi.Routes.Route
    * @see <a href="http://api.stackoverflow.com/1.0/help/method?method=users/moderators" target="_blank">/users/moderators</a>
    */
    Soapi.Routes.UsersModeratorsRouteMap = function(params)
    {
        /// <summary>
        /// Gets all the moderators on this site.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [reputation|creation|name], todate: Date }</param>
        /// <field name='filter' type='String'>String that must appear in returned users' names</field>
        /// <field name='fromdate' type='Date'>JavaScript Date indicating the minimum creation date on a returned item.</field>
        /// <field name='max' type='Object'>Maximum of the range to include in the current sort.</field>
        /// <field name='min' type='Object'>Minimum of the range to include in the current sort.</field>
        /// <field name='order' type='Soapi.Domain.SortOrder'>one of desc (default), asc</field>
        /// <field name='page' type='Number'>The pagination offset for the current collection.  Affected by the specified pagesize.</field>
        /// <field name='pagesize' type='Number'>The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.</field>
        /// <field name='sort' type='Soapi.Domain.UserSort'>one of reputation (default), creation, name</field>
        /// <field name='todate' type='Date'>JavaScript Date indicating the maximum creation date on a returned item.</field>
        /// <returns type='Soapi.Routes.UsersModeratorsRouteMap'/>


        /**
        * String String that must appear in returned users' names
        * @field
        * @type String
        */
        this.filter = null;
        /**
        * JavaScript Date indicating the minimum creation date on a returned item.
        * @field
        * @type Date
        */
        this.fromdate = null;
        /**
        * Maximum of the range to include in the current sort.
        * @field
        * @type Object
        */
        this.max = null;
        /**
        * Minimum of the range to include in the current sort.
        * @field
        * @type Object
        */
        this.min = null;
        /**
        * one of desc, asc
        * @field
        * @type Soapi.Domain.SortOrder
        */
        this.order = null;
        /**
        * The pagination offset for the current collection.  Affected by the specified pagesize.
        * @field
        * @type Number
        */
        this.page = 0;
        /**
        * The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
        * @field
        * @type Number
        */
        this.pagesize = 0;
        /**
        * one of reputation, creation, name
        * @field
        * @type Soapi.Domain.UserSort
        */
        this.sort = null;
        /**
        * JavaScript Date indicating the maximum creation date on a returned item.
        * @field
        * @type Date
        */
        this.todate = null;



    };

    /**
    * The api route that services this RouteMap. Exposed for use in setting cache rules on {@link Soapi.RequestCache.setDuration}
    * @field
    * @static
    * @type String
    */
    Soapi.Routes.UsersModeratorsRouteMap.routeFormat = null;


    /**
    * Applies parameters to this Route.
    * @function
    * @param {Object} params An object map of parameters to apply to this Route
    * @param {String} [params.filter] String that must appear in returned users' names
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.UserSort} [params.sort="reputation"] one of reputation, creation, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.
    * @returns {Soapi.Routes.UsersModeratorsRouteMap}
    */
    Soapi.Routes.UsersModeratorsRouteMap.prototype.applyParameters = function(params)
    {
        /// <summary>
        /// Applies parameters to this object.
        /// </summary>
        /// <param name="params" type="Object">{ filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [reputation|creation|name], todate: Date }</param>
        /// <returns type="Soapi.Routes.UsersModeratorsRouteMap"/>
    };
    /**
    * Retrieves results all pages of a result
    * @function
    * @param {func(Soapi.Responses.UsersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {func(Soapi.Responses.UsersResponse, context)} [pageCallback] return true to cancel paging operation.
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersModeratorsRouteMap}
    */
    Soapi.Routes.UsersModeratorsRouteMap.prototype.getPagedResponse = function(success, error, pageCallback, timeout, context)
    {
        /// <summary>
        /// Retrieves results all pages of a result. Default page=1, pagesize=100
        /// </summary>
        /// <param name="success" type="Function">func(UsersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) optional function to recieve errors</param>
        /// <param name="pageCallback" type="Function">func(UsersResponse, context) optional return true to cancel paging operation.</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object">An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersModeratorsRouteMap"/>
    };
    /**
    * Retrieves results
    * @function
    * @param {func(Soapi.Responses.UsersResponse, context)} success function to recieve the results
    * @param {func(Soapi.Responses.ErrorsResponse, context)} [error] function to recieve errors
    * @param {Number} [timeout] Default 3000 (3 seconds)
    * @param {Object} [context] An arbitrary user defined value/object
    * @returns {Soapi.Routes.UsersModeratorsRouteMap}
    */
    Soapi.Routes.UsersModeratorsRouteMap.prototype.getResponse = function(success, error, timeout, context)
    {
        /// <summary>
        /// Retrieves results
        /// </summary>
        /// <param name="success" type="Function">func(UsersResponse, context) function to recieve the results</param>
        /// <param name="error" type="Function">func(ErrorsResponse, context) (optional) function to recieve errors</param>
        /// <param name="timeout" type="Number">(optional) Default 3000 (3 seconds)</param>
        /// <param name="context" type="Object" required="false">(optional) An arbitrary user defined value/object</param>
        /// <returns type="Soapi.Routes.UsersModeratorsRouteMap"/>
    };


    makeClass(Soapi.Routes.UsersModeratorsRouteMap, 'Soapi.Routes.UsersModeratorsRouteMap');
    /**
    * Creates a new UsersModeratorsRouteMap to provide access to <a href="http://api.stackoverflow.com/1.0/help/method?method=users/moderators" target="_blank">/users/moderators</a> to get all the moderators on this site.
    * @param {Object} [params] An object map of parameters to apply to this Route
    * @param {String} [params.filter] String that must appear in returned users' names
    * @param {Date} [params.fromdate] JavaScript Date indicating the minimum creation date on a returned item.
    * @param {Object} [params.max] Maximum of the range to include in the current sort.
    * @param {Object} [params.min] Minimum of the range to include in the current sort.
    * @param {Soapi.Domain.SortOrder} [params.order="desc"] one of desc, asc
    * @param {Number} [params.page] The pagination offset for the current collection.  Affected by the specified pagesize.
    * @param {Number} [params.pagesize] The number of collection results to display during pagination.  Should be between 1 and 100 inclusive.
    * @param {Soapi.Domain.UserSort} [params.sort="reputation"] one of reputation, creation, name
    * @param {Date} [params.todate] JavaScript Date indicating the maximum creation date on a returned item.        
    * @returns {Soapi.Routes.UsersModeratorsRouteMap}
    */
    Soapi.RouteFactory.prototype.UsersModerators = function(params)
    {
        /// <summary>
        /// Gets all the moderators on this site.
        /// </summary>
        /// <param name="params" type="Object">(optional)  An object map of parameters to apply to this route. { filter: String, fromdate: Date, max: Object, min: Object, order: String [desc|asc], page: Number, pagesize: Number, sort: [reputation|creation|name], todate: Date }</param>
        /// <returns type='Soapi.Routes.UsersModeratorsRouteMap'/>
    };


})();